Afficher une image lors de la connexion.
-
Pas besoin de gui handler.
Pas besoin de variable text non plus.
La seule chose que tu as à faire c’est envoyer un paquet au client dans l’event PlayerEvent.PlayerLoggedInEvent (donc sendTo et non sendToServer) et ajouter la fonction Minecraft.getMinecraft().displayGuiScreen(new TonGui()); dans l’action du paquet. -
D’acc merci mais j’ai un soucis avec cette ligne de mon packet: EntityPlayerMP player = ctx.getServerHandler().playerEntity;
j’ai essayer getClientHandler mais .playernetity marche pas. -
Dans la fonction onMessage tu dois avoir ça :
Minecraft.getMinecraft().displayGuiScreen(new TonGui());
et rien d’autre. -
D’acc
edit: le gui ne s’affiche toujours pas.
pas de soucis ici ??:
p```java
ublic class EquipeGuiScreen extends GuiScreen{private ResourceLocation ressource = new ResourceLocation(“wl:textures/gui/Equipe.png”);
public EquipeGuiScreen() {
}
@Override
public void initGui() {
super.initGui();
}@Override
protected void keyTyped(char typedChar, int keyCode) throws IOException {
super.keyTyped(typedChar, keyCode);
}@Override
protected void actionPerformed(GuiButton button) throws IOException {
super.actionPerformed(button);
}@Override
public void updateScreen() {
super.updateScreen();
}@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {this.drawDefaultBackground();
mc.getTextureManager().bindTexture(ressource);
this.drawTexturedModalRect(this.width, this.height, 0, 0, 256, 256);
super.drawScreen(mouseX, mouseY, partialTicks);
}}
-
Tu commence à dessiner ton gui en dehors de l’écran, normal que ça marche pas ^^ “this.drawTexturedModalRect(this.width, this.height, 0, 0, 256, 256);”
-
Ouais effectivement merci mais j’ai un dernier soucis en gros lorsque je me connecte sa m’affiche le gui mais même pas une seconde après il se referme .
C’est surement du a l’event que j’utilise: Déclenché lorsqu’un joueur est sur le point de se connecté au serveur
Y’a t’il un autre event que celui la j’ai essayer EntityJoinWorldEvent mon jeu crash et l’image s’affiche même pas une seconde également. -
Il y a un event de fml lorsque le joueur se connecte (PlayerEvent.PlayerLoggedInEvent)
-
Pareil il se referme de suite.
-
Le gui tu demandes de l’ouvrir côté serveur ou client ? Essaie côté serveur de demander l’ouverture
-
Côté client j’essaye côté serveur
-
Marche pas côté serveur rien ne se passe
-
Un peu normal x)
Envoies ton code. -
D’accord^^
Packet:
public class PacketGUI implements IMessage { public PacketGUI() { } public PacketGUI(String text) { } @Override public void fromBytes(ByteBuf buf) { } @Override public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler <packetgui, imessage="">{ @Override public IMessage onMessage(PacketGUI message, MessageContext ctx) { Minecraft.getMinecraft().displayGuiScreen(new EquipeGuiScreen()); return null; } } }Main:
@EventHandler public void preInit(FMLPreInitializationEvent event){ proxy.preInit(event); //Items: //GameRegister: network = NetworkRegistry.INSTANCE.newSimpleChannel("wl:"); network.registerMessage(PacketGUI.Handler.class, PacketGUI.class, 0, Side.SERVER); } @EventHandler public void init(FMLInitializationEvent event) { proxy.init(event); //Register Event: FMLCommonHandler.instance().bus().register(new Events()); }Event;
@SubscribeEvent public void PlayerJoin(PlayerEvent.PlayerLoggedInEvent event){ EntityPlayerMP player = (EntityPlayerMP) event.player; WasteLandMod.network.sendToServer(new PacketGUI()); ```</packetgui,> -
network.registerMessage(PacketGUI.Handler.class, PacketGUI.class, 0, Side.SERVER);
->
network.registerMessage(PacketGUI.Handler.class, PacketGUI.class, 0, Side.CLIENT);
C’est le client qui reçoit le paquet donc il faut mettre client. -
Toujours rien… mais quand j’envoie le packet au client dans l’event ça marche mais il se ferme quelque seconde après…
-
Oui j’avais comprit. Il faut chercher pourquoi il se ferme.
ça va être difficile à déboguer ça. -
Ah bah essayer de votre côté voir car la je comprend pas trop le soucis .
-
Pour déboguer tu peux créer un Throwable que tu vas afficher dans la console dans la fonction où le gui se ferme :
public void laFonctionEnQuestion() { Throwable t = new Throwable(); t.printStackTrace(); }ça t’affichera par quelle classe cette fonction a été appelée ou alors tu peux passer en debug et mettre un point d’arrêt dans la fonction et voir comment la fonction est appelée
-
Salut, merci de ta réponse SCAREX,
Quand je lance mon jeu en débug lorsque je me connecte en solo mon jeu plante et m’indique que le soucis vient de la:
@Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.drawDefaultBackground(); // ICI mc.getTextureManager().bindTexture(ressource); this.drawTexturedModalRect(this.width / 2 - 128, this.height / 2 - 128, 0, 0, 1920, 1080); super.drawScreen(mouseX, mouseY, partialTicks); } }quand j’enlève cette ligne le crash n’est plus la mais comme avant le gui se ferme directement après .
-
Ta fonction onGuiClosed est appelée par quelle fonction du coup ?