MFF

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

    [SANS SUITE] Crash Serveur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    87 Messages 7 Publieurs 19.0k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Actuellement est-ce que “Mort” s’affiche dans la console ?
      Car si oui alors l’event est bien appelé côté client, donc non pas besoin de paquet.

      Et ton paquet tel que tu l’as fait doit aller du serveur vers le client.

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

        @‘robin4002’:

        Actuellement est-ce que “Mort” s’affiche dans la console ?
        Car si oui alors l’event est bien appelé côté client, donc non pas besoin de paquet.

        Et ton paquet tel que tu l’as fait doit aller du serveur vers le client.

        Non, “Mort” s’affiche pas dans la console.

        Du coup j’ai ça:

        Event:

        
        @SubscribeEvent
        public void onDeath(LivingDeathEvent event)
        {
        
        if(event.entityLiving instanceof EntityPlayer)
        {
        
        event.entityLiving.setHealth(1);
        
        if(event.entityLiving.worldObj.isRemote){
        Main.network.sendToServer(new PacketGui());
        Mort.settimer(10000);
        System.out.println("Mort");
        }
        
        }
        
        }
        

        Packet:

        
        public class PacketGui implements IMessage {
        
        public int i;
        
        public PacketGui(){
        
        }
        public PacketGui(int i){
        this.i = i;
        }
        
        @Override
        public void fromBytes(ByteBuf buf) {
        i = buf.readInt();
        }
        
        @Override
        public void toBytes(ByteBuf buf) {
        buf.writeInt(i);
        }
        
        public static class Handler implements IMessageHandler <packetgui, imessage="">{
        @SideOnly(Side.CLIENT)
           public IMessage onMessage(PacketGui message, MessageContext ctx) {
        
                Minecraft.getMinecraft().displayGuiScreen(new Mort());
                return message;
               }
        
           }
        
        }
        
        

        Gui:

        
        public class Mort extends GuiScreen {
        
        @SideOnly(Side.CLIENT)
        
        private ResourceLocation ressource = new ResourceLocation("dd:textures/gui/death.png");
        
        private int medecin;
        
        private int spawn;
        
        public static int timer = 10000;
        
        int guiWidth = 256;
        
        int guiHeight = 256;
        
        public Mort() {
        
        }
        
        @Override
        public void initGui() {
        
        int guiX = (this.width - guiWidth) / 2;
        
        int guiY = (this.height - guiHeight) / 2;
        
        medecin = 0;
        
        spawn = 1;
        
        buttonList.clear();
        
        buttonList.add(new GuiButton(medecin, guiX + 170, guiY + 226 + 5, 58, 20, "§aAppeller un médecin"));
        
        buttonList.add(new GuiButton(spawn, guiX + 80, guiY, 120, 20, "§5Respawn possible dans"));
        
        super.initGui();
        }
        
        @Override
        protected void keyTyped(char typedChar, int keyCode) {
        
        }
        
        @Override
        protected void actionPerformed(GuiButton button) {
        
        switch(button.id) {
        case 0:
        Main.network.sendToServer(new PacketMedecin());
        break;
        case 1:
        if(timer > 0)
        {
        EntityPlayer player1 = Minecraft.getMinecraft().thePlayer;
        ChatComponentText text1 = new ChatComponentText("§7Vous ne pouvez pas respawn ! il vous reste: " + timer / 100 + " §7secondes");
        player1.addChatComponentMessage(text1);
        timer –;
        break;
        }
        else
        {
        
        EntityPlayer player1 = Minecraft.getMinecraft().thePlayer;
        player1.setDead();
        Minecraft.getMinecraft().thePlayer.closeScreen();
        break;
        }
        default:
        break;
        }
        
        super.actionPerformed(button);
        }
        
        @Override
        public void updateScreen() {
        super.updateScreen();
        }
        
        public void drawScreen(int mouseX, int mouseY, float partialTick) 
        
        {
        
        String tilename = "§5 : " + timer-- / 100;
        
        mc.getTextureManager().bindTexture(ressource);
        
        this.drawTexturedModalRect(this.width / 2 - 135, this.height / 2 - 127, 0, 0, 256, 255);
        if(timer > 0)
        {
        this.fontRendererObj.drawString(tilename, this.width / 2 + 95 - this.fontRendererObj.getStringWidth(tilename) / 2, 1, 0);
        }
        super.drawScreen(mouseX, mouseY, partialTick);
            }
        
        public static void settimer(int newtimer)
        {
        timer = newtimer;
        }
        
        @Override
        public void onGuiClosed() {
        
        }
        
        }
        
        

        Register packet:

        
        network = NetworkRegistry.INSTANCE.newSimpleChannel("dd:");
        network.registerMessage(PacketGui.Handler.class, PacketGui.class, 0, Side.SERVER);
        
        

        Mon gui ne s’ouvre toujours pas.</packetgui,>

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

          Normal tu as pas changé le code de ton évent, il faut que tu retires le if(…worldObj.isRemote), que tu envoies le packet au client qui vient de mourir, et que tu déplaces le Mort.setTimer dans la fonction onMessage de packet.

          Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

          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
          • GabsG Hors-ligne
            Gabs
            dernière édition par

            @‘AymericRed’:

            Normal tu as pas changé le code de ton évent, il faut que tu retires le if(…worldObj.isRemote), que tu envoies le packet au client qui vient de mourir, et que tu déplaces le Mort.setTimer dans la fonction onMessage de packet.

            Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

            Ok , Merci ça marche du coup mais la j’ai un autre crash report …

            
            –-- Minecraft Crash Report ----
            // There are four lights!
            
            Time: 22/07/16 12:17
            Description: Exception in server tick loop
            
            cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
            at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
            at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)
            at cpw.mods.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:97)
            at cpw.mods.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:324)
            at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:287)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:631)
            at java.lang.Thread.run(Thread.java:745)
            Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
            at com.DeathDelay.net.Main.init(Main.java:64)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
            at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
            at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
            at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
            at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
            ... 5 more
            Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityClientPlayerMP
            at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
            ... 33 more
            Caused by: java.lang.NullPointerException
            
            A detailed walkthrough of the error, its code path and all known details is as follows:
            ---------------------------------------------------------------------------------------
            
            -- System Details --
            Details:
            Minecraft Version: 1.7.10
            Operating System: Windows 7 (amd64) version 6.1
            Java Version: 1.7.0_79, Oracle Corporation
            Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
            Memory: 780690480 bytes (744 MB) / 1029701632 bytes (982 MB) up to 1029701632 bytes (982 MB)
            JVM Flags: 4 total; -XX:PermSize=128m -XX:MaxPermSize=256m -Xmx1G -Xms1G
            AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
            IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
            FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 5 mods loaded, 5 mods active
            States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
            UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
            UCHI FML{7.10.99.99} [Forge Mod Loader] (KCauldron-1.7.10-1448.121-server.jar) 
            UCHI Forge{10.13.4.1448} [Minecraft Forge] (KCauldron-1.7.10-1448.121-server.jar) 
            UCHI kimagine{0.1} [KImagine] (minecraft.jar) 
            UCHE dd{1.0} [dd] (DeathDelay.jar) 
            Profiler Position: N/A (disabled)
            Player Count: 0 / 20; []
            Is Modded: Definitely; Server brand changed to 'kcauldron,cauldron,craftbukkit,mcpc,fml,forge'
            Type: Dedicated Server (map_server.txt)
            
            1 réponse Dernière réponse Répondre Citer 0
            • AymericRedA Hors-ligne
              AymericRed
              dernière édition par

              Tu as un problème (de side) dans ta classe Main fonction init à la ligne 64, montres la.

              Envoyé via mobile

              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
              • GabsG Hors-ligne
                Gabs
                dernière édition par

                @‘AymericRed’:

                Tu as un problème (de side) dans ta classe Main fonction init à la ligne 64, montres la.

                Envoyé via mobile

                
                 @EventHandler
                    public void init(FMLInitializationEvent event)
                    {
                    proxy.init(event);
                        MinecraftForge.EVENT_BUS.register(new Events()); // ligne 64
                        FMLCommonHandler.instance().bus().register(new Events());
                    }
                
                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

                  Envoies ta classe Events entière.

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

                    @‘robin4002’:

                    Envoies ta classe Events entière.

                    Tien : (J’ai fais quelques modif au niveau de l’event ondeath mais je pense pas que se soit ça:

                    
                    public class Events {
                    
                    public static boolean coma;
                    
                    @SubscribeEvent
                    public void onDeath(LivingDeathEvent event)
                    {
                    
                    booleantrue();
                    System.out.println(coma);
                    if(event.entityLiving instanceof EntityPlayer && coma == true)
                    {
                    
                    event.entityLiving.setHealth(1);
                    
                    Main.network.sendToServer(new PacketGui());
                    
                    System.out.println("Mort");
                    System.out.println(coma);
                    
                    }
                    
                    }
                    
                    @SubscribeEvent
                    public void onInventoryOpen(GuiOpenEvent event)
                    {
                    EntityPlayer player = Minecraft.getMinecraft().thePlayer;
                    if(event.gui instanceof GuiInventory && !player.capabilities.isCreativeMode)
                    {
                    event.setCanceled(true);
                    }
                    }
                    
                    public static void booleantrue()
                    {
                    coma = true;
                    }
                    public static void booleanfalse()
                    {
                    coma = false;
                    }
                    
                    @SubscribeEvent
                    public void pickupfalse(EntityItemPickupEvent event)
                    {
                    if(coma == true && event.entity instanceof EntityPlayer)
                    {
                    event.setCanceled(true);
                    }
                    }
                    @SubscribeEvent
                    public void onRespawn(PlayerEvent.PlayerRespawnEvent event)
                    {
                    if(coma == true)
                    {
                    booleanfalse();
                    System.out.println(coma);
                    }
                    }
                    
                    @SubscribeEvent
                    public void onDecocoma(PlayerEvent.PlayerLoggedOutEvent event)
                    {
                    if(coma == true)
                    {
                    event.player.setDead();
                    }
                    }
                    
                    }
                    
                    
                    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

                      Mets un @SideOnly(Side.CLIENT) au dessus de cette fonction : public void onInventoryOpen(GuiOpenEvent event)

                      Et dans onDeath Main.network.sendToServer(new PacketGui()); devrait être Main.network.sendTo(new PacketGui(), (EntityPlayer)event.entityLiving);
                      Comment veux-tu envoyer un paquet au serveur si tu es déjà sur le serveur ?

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

                        @‘robin4002’:

                        Mets un @SideOnly(Side.CLIENT) au dessus de cette fonction : public void onInventoryOpen(GuiOpenEvent event)

                        Et dans onDeath Main.network.sendToServer(new PacketGui()); devrait être Main.network.sendTo(new PacketGui(), (EntityPlayer)event.entityLiving);
                        Comment veux-tu envoyer un paquet au serveur si tu es déjà sur le serveur ?

                        Mon gui s’ouvre plus du coup:

                        
                        @SubscribeEvent
                        public void onDeath(LivingDeathEvent event)
                        {
                        
                        booleantrue();
                        System.out.println(coma);
                        if(event.entityLiving instanceof EntityPlayer && coma == true)
                        {
                        
                        event.entityLiving.setHealth(1);
                        
                        Main.network.sendTo(new PacketGui(), (EntityPlayerMP)event.entityLiving);
                        
                        System.out.println("Mort");
                        System.out.println(coma);
                        
                        }
                        
                        }
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          1. ```java
                          EntityPlayer player = Minecraft.getMinecraft().thePlayer;

                          2\. Pourquoi avoir des fonction booleantrue() et booleanfalse() alors que tu peux directement changer la valeur de coma sans ces fonctions ?
                          3\. ```java
                          if(event.entityLiving instanceof EntityPlayer && coma == true)
                          ``` pourquoi tester si come == true alors que tu as appelé booleantrue() juste avant ?
                          4\. ```java
                          Main.network.sendToServer(new PacketGui());
                          ```, j'ai déjà dit qu'il faut
                          
                          > que tu envoies le packet au client qui vient de mourir
                          
                          , alors pourquoi tu l'envoies depuis le serveur vers le serveur ?
                          
                          EDIT : Robin a répondu avant, et tu as ensuite répondu, est-ce que "Mort" apparaît dans la console ?

                          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
                          • GabsG Hors-ligne
                            Gabs
                            dernière édition par

                            @‘AymericRed’:

                            1. ```java
                            EntityPlayer player = Minecraft.getMinecraft().thePlayer;

                            2\. Pourquoi avoir des fonction booleantrue() et booleanfalse() alors que tu peux directement changer la valeur de coma sans ces fonctions ?
                            3\. ```java
                            if(event.entityLiving instanceof EntityPlayer && coma == true)
                            ``` pourquoi tester si come == true alors que tu as appelé booleantrue() juste avant ?
                            4\. ```java
                            Main.network.sendToServer(new PacketGui());
                            ```, j'ai déjà dit qu'il faut
                            
                            > que tu envoies le packet au client qui vient de mourir
                            
                            , alors pourquoi tu l'envoies depuis le serveur vers le serveur ?
                            
                            EDIT : Robin a répondu avant, et tu as ensuite répondu, est-ce que "Mort" apparaît dans la console ?
                            

                            2 : Je préfères faire des fonctions je sais que je peux directement avec coma = true / false;
                            3 : bonne question.
                            4 : J’avais pas remarqué.
                            et pour le edit le “Mort” marcher avec un world.isremote maintenant sans le isremote oui il s’affiche dans la console.

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

                              Donc le packet devrait être envoyé, tu l’as bien register comme devant arriver sur le client ? Mets un print dans la fonction onMessage.

                              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
                              • GabsG Hors-ligne
                                Gabs
                                dernière édition par

                                @‘AymericRed’:

                                Donc le packet devrait être envoyé, tu l’as bien register comme devant arriver sur le client ? Mets un print dans la fonction onMessage.

                                J’ai mis un print dans la fonction onMessage en solo le print est bien envoyer et le gui s’ouvre bien mais en multi il s’ouvre pas.

                                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

                                  Pas normal du tout.
                                  Renvoies ton code. (gui, paquet, event)

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

                                    Surement les sides que ont a mis au débuts.

                                    Gui:

                                    
                                    public class Mort extends GuiScreen {
                                    
                                    @SideOnly(Side.CLIENT)
                                    
                                    private ResourceLocation ressource = new ResourceLocation("dd:textures/gui/death.png");
                                    
                                    private int medecin;
                                    
                                    private int spawn;
                                    
                                    public static int timer = 10000;
                                    
                                    int guiWidth = 256;
                                    
                                    int guiHeight = 256;
                                    
                                    public Mort() {
                                    
                                    }
                                    
                                    @Override
                                    public void initGui() {
                                    
                                    int guiX = (this.width - guiWidth) / 2;
                                    
                                    int guiY = (this.height - guiHeight) / 2;
                                    
                                    medecin = 0;
                                    
                                    spawn = 1;
                                    
                                    buttonList.clear();
                                    
                                    buttonList.add(new GuiButton(medecin, guiX + 170, guiY + 226 + 5, 58, 20, "§aAppeller un médecin"));
                                    
                                    buttonList.add(new GuiButton(spawn, guiX + 80, guiY, 120, 20, "§5Respawn possible dans"));
                                    
                                    super.initGui();
                                    }
                                    
                                    @Override
                                    protected void keyTyped(char typedChar, int keyCode) {
                                    
                                    }
                                    
                                    @Override
                                    protected void actionPerformed(GuiButton button) {
                                    
                                    switch(button.id) {
                                    case 0:
                                    Main.network.sendToServer(new PacketMedecin());
                                    break;
                                    case 1:
                                    if(timer > 0)
                                    {
                                    EntityPlayer player1 = Minecraft.getMinecraft().thePlayer;
                                    ChatComponentText text1 = new ChatComponentText("§7Vous ne pouvez pas respawn ! il vous reste: " + timer / 100 + " §7secondes");
                                    player1.addChatComponentMessage(text1);
                                    timer –;
                                    break;
                                    }
                                    else
                                    {
                                    
                                    EntityPlayer player1 = Minecraft.getMinecraft().thePlayer;
                                    player1.setDead();
                                    Minecraft.getMinecraft().thePlayer.closeScreen();
                                    break;
                                    }
                                    default:
                                    break;
                                    }
                                    
                                    super.actionPerformed(button);
                                    }
                                    
                                    @Override
                                    public void updateScreen() {
                                    super.updateScreen();
                                    }
                                    
                                    public void drawScreen(int mouseX, int mouseY, float partialTick) 
                                    
                                    {
                                    
                                    String tilename = "§5 : " + timer-- / 100;
                                    
                                    mc.getTextureManager().bindTexture(ressource);
                                    
                                    this.drawTexturedModalRect(this.width / 2 - 135, this.height / 2 - 127, 0, 0, 256, 255);
                                    if(timer > 0)
                                    {
                                    this.fontRendererObj.drawString(tilename, this.width / 2 + 95 - this.fontRendererObj.getStringWidth(tilename) / 2, 1, 0);
                                    }
                                    super.drawScreen(mouseX, mouseY, partialTick);
                                        }
                                    
                                    public static void settimer(int newtimer)
                                    {
                                    timer = newtimer;
                                    }
                                    
                                    @Override
                                    public void onGuiClosed() {
                                    
                                    }
                                    
                                    }
                                    
                                    

                                    Packet:

                                    
                                    public class PacketGui implements IMessage {
                                    
                                    public int i;
                                    
                                    public PacketGui(){
                                    
                                    }
                                    public PacketGui(int i){
                                    this.i = i;
                                    }
                                    
                                    @Override
                                    public void fromBytes(ByteBuf buf) {
                                    i = buf.readInt();
                                    }
                                    
                                    @Override
                                    public void toBytes(ByteBuf buf) {
                                    buf.writeInt(i);
                                    }
                                    
                                    public static class Handler implements IMessageHandler <packetgui, imessage="">{
                                    @SideOnly(Side.CLIENT)
                                       public IMessage onMessage(PacketGui message, MessageContext ctx) {
                                    
                                            Minecraft.getMinecraft().displayGuiScreen(new Mort());
                                            Mort.settimer(10000);
                                            System.out.println("packet");
                                            return message;
                                           }
                                    
                                       }
                                    
                                    }
                                    
                                    

                                    Event:

                                    
                                    @SubscribeEvent
                                    public void onDeath(LivingDeathEvent event)
                                    {
                                    
                                    booleantrue();
                                    System.out.println(coma);
                                    if(event.entityLiving instanceof EntityPlayer)
                                    {
                                    
                                    event.entityLiving.setHealth(1);
                                    
                                    Main.network.sendTo(new PacketGui(), (EntityPlayerMP)event.entityLiving);
                                    
                                    System.out.println("Mort");
                                    System.out.println(coma);
                                    
                                    }
                                    
                                    }
                                    
                                    

                                    Register Packet:

                                    
                                    network = NetworkRegistry.INSTANCE.newSimpleChannel("dd:");
                                    
                                    network.registerMessage(PacketGui.Handler.class, PacketGui.class, 0, Side.CLIENT);
                                    ``` // ici quand je met client le gui ne s'ouvre pas solo ( j'ai pas essayer en multi )</packetgui,>
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • DeletedD Hors-ligne
                                      Deleted
                                      dernière édition par

                                      Vire le constructeur du packet ayant un integer en paramètre, il ne te sert à rien. Et vire le
                                      @SideOnly(Side.CLIENT) dans ta sous classe Handler et dans ta classe Gui. Tu n’en as pas besoin.

                                      EDIT = Ton onGuiClosed que tu as override dans ta classe gui, ne sert à rien, puisque tu l’as laissé vide, et que de base (n’ai pas les sources sous les yeux), je crois qu’il est déjà vide.
                                      Ton boolean coma dans ta classe EventHandler, sera commun à tous les joueurs, or je pense que tu ne le souhaites pas ?  Si oui, go ––> l’enregistrer dans ton ExtProp

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

                                        Dans ta fonction onMessage, “return message;” devrait être “return null;”, t comme Plaigon l’a dit, retires tout ce qui touches à l’int i.

                                        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

                                          Dernières remarques :

                                          • À quoi ton setter setTimer peut te servir si ta variable timer est déjà en static ?
                                          • Comme ton onGuiClosed, même remarque pour ta fonction updateScreen
                                          • Pourquoi divises-tu ta variabe timer par 100 dans actionPerformed, alors que tu indiques qu’il s’agit d seconde. Je te rappelle que 20 ticks est égale à 1 seconde. Donc faut mieux diviser par 20 😃
                                          • Lorsque tu te sers du setDead dans ta classe gui Mort, je ne suis pas trop sûr, mais il y a des chances que cela ne marche pas, car setDead() doit être appelé côté serveur (si quelqu’un pouvait me confirmer :))
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • GabsG Hors-ligne
                                            Gabs
                                            dernière édition par

                                            @‘Plaigon’:

                                            Dernières remarques :

                                            • À quoi ton setter setTimer peut te servir si ta variable timer est déjà en static ?
                                            • Comme ton onGuiClosed, même remarque pour ta fonction updateScreen
                                            • Pourquoi divises-tu ta variabe timer par 100 dans actionPerformed, alors que tu indiques qu’il s’agit d seconde. Je te rappelle que 20 ticks est égale à 1 seconde. Donc faut mieux diviser par 20 😃
                                            • Lorsque tu te sers du setDead dans ta classe gui Mort, je ne suis pas trop sûr, mais il y a des chances que cela ne marche pas, car setDead() doit être appelé côté serveur (si quelqu’un pouvait me confirmer :))

                                            Alors,

                                            J’ai fais ça du coup:

                                            
                                            public class PacketGui implements IMessage {
                                            
                                            public PacketGui(){
                                            
                                            }
                                            
                                            @Override
                                            public void fromBytes(ByteBuf buf) {
                                            }
                                            
                                            @Override
                                            public void toBytes(ByteBuf buf) {
                                            }
                                            
                                            public static class Handler implements IMessageHandler <packetgui, imessage="">{
                                               public IMessage onMessage(PacketGui message, MessageContext ctx) {
                                            
                                                    Minecraft.getMinecraft().displayGuiScreen(new Mort());
                                                    Mort.settimer(10000);
                                                    System.out.println("packet");
                                                    return null;
                                                   }
                                            
                                               }
                                            
                                            }
                                            

                                            Crash au démarrage du serveur au niveau de la main class fonction init java 56 il me semble sa pointe le register du packetGui.</packetgui,>

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 3 / 5
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB