MFF

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

    Problème ClientTick Pluie Acide

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.5.2
    21 Messages 5 Publieurs 7.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.
    • AmaA Hors-ligne
      Ama
      dernière édition par

      Bonjour ! Pour mon mod j’ai créer un damage de “pluies acides” (le mod est aussi un serveur)

      donc dans ClientTicks.java j’ai:

      :::

      package zeamateis.viruz.client;
      
      import java.util.EnumSet;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.model.ModelBiped;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.DamageSource;
      import net.minecraft.world.World;
      import zeamateis.viruz.manage.DamageSourcesManager;
      import cpw.mods.fml.common.ITickHandler;
      import cpw.mods.fml.common.TickType;
      
      public class ClientTicks implements ITickHandler
      {
      public World worldObj;
      
      public EntityPlayer entityPlayer;
      
      public void tickStart(EnumSet <ticktype>type, Object… tickData)//Actions au debut d un tick
      {
      }
      
      public void tickEnd(EnumSet <ticktype>type, Object... tickData)//Actions a la fin d un tick
      {
      
      if(type.equals(EnumSet.of(TickType.PLAYER)))
      {
      acidRainDamage((EntityPlayer)tickData[0]);
      }
      
      }
      
      @Override
      public EnumSet <ticktype>ticks()
      {
      return EnumSet.of(TickType.PLAYER, TickType.RENDER, TickType.CLIENT);
      }
      
      public void acidRainDamage(EntityPlayer player)
      {
      if (entityPlayer.worldObj.isRaining())
      {
      player.attackEntityFrom(DamageSourcesManager.acidRain, 0);
      }
      }
      
      @Override
      public String getLabel() {return null;}
      }
      

      :::

      Et comme code d’erreur:

      :::

      –-- Minecraft Crash Report ----
      // Don't be sad. I'll do better next time, I promise!
      
      Time: 26/12/13 00:20
      Description: Ticking entity
      
      java.lang.NullPointerException
      at zeamateis.viruz.client.ClientTicks.acidRainDamage(ClientTicks.java:45)
      at zeamateis.viruz.client.ClientTicks.tickEnd(ClientTicks.java:32)
      at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
      at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:141)
      at cpw.mods.fml.common.FMLCommonHandler.onPlayerPostTick(FMLCommonHandler.java:389)
      at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:404)
      at net.minecraft.client.entity.EntityClientPlayerMP.onUpdate(EntityClientPlayerMP.java:76)
      at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2342)
      at net.minecraft.world.World.updateEntity(World.java:2304)
      at net.minecraft.world.World.updateEntities(World.java:2150)
      at net.minecraft.client.Minecraft.runTick(Minecraft.java:1853)
      at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:835)
      at net.minecraft.client.Minecraft.run(Minecraft.java:760)
      at java.lang.Thread.run(Unknown Source)
      
      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      
      -- Head --
      Stacktrace:
      at zeamateis.viruz.client.ClientTicks.acidRainDamage(ClientTicks.java:45)
      at zeamateis.viruz.client.ClientTicks.tickEnd(ClientTicks.java:32)
      at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
      at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:141)
      at cpw.mods.fml.common.FMLCommonHandler.onPlayerPostTick(FMLCommonHandler.java:389)
      at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:404)
      at net.minecraft.client.entity.EntityClientPlayerMP.onUpdate(EntityClientPlayerMP.java:76)
      at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2342)
      at net.minecraft.world.World.updateEntity(World.java:2304)
      
      -- Entity being ticked --
      Details:
      Entity Type: null (net.minecraft.client.entity.EntityClientPlayerMP)
      Entity ID: 34
      Entity Name: Survivant 156
      Entity's Exact location: 1267,71, 6,79, -904,75
      Entity's Block location: World: (1267,6,-905), Chunk: (at 3,0,7 in 79,-57; contains blocks 1264,0,-912 to 1279,255,-897), Region: (2,-2; contains chunks 64,-64 to 95,-33, blocks 1024,0,-1024 to 1535,255,-513)
      Entity's Momentum: 0,00, -0,08, 0,00
      Stacktrace:
      at net.minecraft.world.World.updateEntities(World.java:2150)
      
      -- Affected level --
      Details:
      Level name: MpServer
      All players: 1 total; [EntityClientPlayerMP['Survivant 156'/34, l='MpServer', x=1267,71, y=6,79, z=-904,75]]
      Chunk stats: MultiplayerChunkCache: 50
      Level seed: 0
      Level generator: ID 01 - flat, ver 0\. Features enabled: false
      Level generator options:
      Level spawn location: World: (1270,4,-877), Chunk: (at 6,0,3 in 79,-55; contains blocks 1264,0,-880 to 1279,255,-865), Region: (2,-2; contains chunks 64,-64 to 95,-33, blocks 1024,0,-1024 to 1535,255,-513)
      Level time: 23585 game time, 4153 day time
      Level dimension: 0
      Level storage version: 0x00000 - Unknown?
      Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)
      Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false
      Forced entities: 2 total; [EntityClientPlayerMP['Survivant 156'/34, l='MpServer', x=1267,71, y=6,79, z=-904,75], EntityChicken['Chicken'/20, l='MpServer', x=1323,56, y=4,00, z=-869,56]]
      Retry entities: 0 total; []
      Stacktrace:
      at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:441)
      at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2414)
      at net.minecraft.client.Minecraft.run(Minecraft.java:776)
      at java.lang.Thread.run(Unknown Source)
      
      – System Details --
      Details:
      Minecraft Version: 1.5.2
      Operating System: Windows 8 (x86) version 6.2
      Java Version: 1.7.0_45, Oracle Corporation
      Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
      Memory: 880740896 bytes (839 MB) / 1046937600 bytes (998 MB) up to 1046937600 bytes (998 MB)
      JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
      AABB Pool Size: 806 (45136 bytes; 0 MB) allocated, 15 (840 bytes; 0 MB) used
      Suspicious classes: FML and Forge are installed
      IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
      FML: MCP v7.51 FML v5.2.23.738 Minecraft Forge 7.8.1.738 4 mods loaded, 4 mods active
      mcp{7.51} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
      FML{5.2.23.738} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
      Forge{7.8.1.738} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
      ViruZ{1.2} [ViruZ] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
      LWJGL: 2.4.2
      OpenGL: Intel(R) HD Graphics 3000 GL version 3.1.0 - Build 9.17.10.3347, Intel
      Is Modded: Definitely; Client brand changed to 'fml,forge'
      Type: Client (map_client.txt)
      Texture Pack: ViruZ -Texture Pack.zip
      Profiler Position: N/A (disabled)
      Vec3 Pool Size: 40 (2240 bytes; 0 MB) allocated, 40 (2240 bytes; 0 MB) used
      
      

      :::

      J’espère que vous trouverez l’erreur car je cherche en vains ….</ticktype></ticktype></ticktype>

      Si je t'ai filé un coup de main n'oublie pas le + / -
      Par contre évite les demandes d'aides en MP, tu sera sympa'

      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

        java.lang.NullPointerException
        

        Vérifie que toutes tes variables sont initialisées.

        La preuve :

        La ligne 53 possède une erreur, et sur cette ligne :

        
        return null;
        
        

        "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
        ― Jordan B. Peterson

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

          C’est à dire ?

          Si je t'ai filé un coup de main n'oublie pas le + / -
          Par contre évite les demandes d'aides en MP, tu sera sympa'

          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

            Au lieu de return null, change en quelque chose.

            Juste “” suffit, mais ne laisse pas le return null, car sinon, le client va demander le label, on va lui dire qu’il est null : Le client pointe vers null et cause une erreur nullPointerException

            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
            ― Jordan B. Peterson

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

              Je me suis apperçu que l’error log est faut je corrige ça, parce-que à aucun moment il n’y a de “retrun null;” donc voilà le problème

              Si je t'ai filé un coup de main n'oublie pas le + / -
              Par contre évite les demandes d'aides en MP, tu sera sympa'

              La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

              Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

              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

                Si, ici :

                @Override
                public String getLabel() {return null;}
                

                Sinon plutôt qu’utiliser un tickHandler qui n’agit que sur le joueur, j’utiliserai plutôt l’event LivingUpdateEvent qui agit sur toutes les entités vivantes. Également, tu as oublié de vérifier que l’entité voit le ciel. (il devrait avoir ça dans le code de l’enderman).

                Et pour finir, dégât = serveur et pas client, donc faut pas utiliser un tickhandler de type client mais de type serveur (ou l’event que je t’ai proposé).

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

                  Un event serait en effet plus approprié.

                  De plus, j’ai bien dis que c’était ligne 53 qu’il y avait un return null.

                  Enfin, j’ai simplement penser a corriger le crash et non le principe 😞

                  "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                  ― Jordan B. Peterson

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

                    Si je met “return false;”, il me demande de mettre en boolean, et même avec le boolean j’ai une erreur

                    Si je t'ai filé un coup de main n'oublie pas le + / -
                    Par contre évite les demandes d'aides en MP, tu sera sympa'

                    La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                    Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                      Normal, il te demande de retourner un String, non un boolean.

                      Mets simplement deux guillemets : “”

                      "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                      ― Jordan B. Peterson

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

                        j’ai la même erreur même avec les guillemets donc, robin tu parlé d’un event “LivingUpdateEvent” comment je fait ?
                        genre ?
                        public onLivingUpdateEvent (LivingUpdateEvent livingUpdateEvent)
                        {
                        }

                        Si je t'ai filé un coup de main n'oublie pas le + / -
                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                          Bon j’y arrive pas, ce que je fait ne marche pas ou crash.
                          Je l’ai mis dans un Ticks pour le serveur “ServerTicks.java” je l’ai bien déclaré dans commonproxy mais marche pas

                          Si je t'ai filé un coup de main n'oublie pas le + / -
                          Par contre évite les demandes d'aides en MP, tu sera sympa'

                          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                            Fait avec l’event

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

                            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

                              Comme tout les event, dans ta classe principale tu enregistre la classe ou tu as l’event, et cette classe du mets le void avec @ForgeSubscribe (cf : tutoriel sur le son ou l’event drop).

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

                                Bien ! J’avance ! Mais j’ai une nouvelle erreur !
                                J’ai ce code:

                                :::

                                package zeamateis.viruz.manage;
                                
                                import net.minecraft.entity.EntityLiving;
                                import net.minecraft.entity.player.EntityPlayer;
                                import net.minecraftforge.event.EventPriority;
                                import net.minecraftforge.event.ForgeSubscribe;
                                import net.minecraftforge.event.entity.living.LivingEvent;
                                
                                public class LivingEventManager
                                {
                                
                                @ForgeSubscribe(priority = EventPriority.NORMAL)
                                public void LivingUpdateEvent(LivingEvent event)
                                {
                                if(event.entity instanceof EntityPlayer)
                                {
                                if (event.entity.isWet())
                                {
                                event.entity.attackEntityFrom(DamageSourcesManager.acidRain, 1);
                                }
                                }
                                }
                                }
                                
                                

                                :::

                                et cette erreur:

                                http://pastebin.com/GZXVr3yS

                                Si je t'ai filé un coup de main n'oublie pas le + / -
                                Par contre évite les demandes d'aides en MP, tu sera sympa'

                                La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                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

                                  LivingUpdateEvent pas LivingEvent :

                                  package zeamateis.viruz.manage;
                                  
                                  import net.minecraft.entity.EntityLiving;
                                  import net.minecraft.entity.player.EntityPlayer;
                                  import net.minecraftforge.event.EventPriority;
                                  import net.minecraftforge.event.ForgeSubscribe;
                                  import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
                                  
                                  public class LivingEventManager
                                  {
                                  
                                  @ForgeSubscribe(priority = EventPriority.NORMAL)
                                  public void LivingUpdateEvent(LivingUpdateEvent event)
                                  {
                                  if(event.entity instanceof EntityPlayer)
                                  {
                                  if (event.entity.isWet())
                                  {
                                  event.entity.attackEntityFrom(DamageSourcesManager.acidRain, 1);
                                  }
                                  }
                                  }
                                  }
                                  

                                  Juste, pourquoi event.entity.isWet() et pas event.entityLiving.worldObj.isRaining() ?

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

                                    Merci ! ça fonctionne ! quelle bête erreur ! Merci

                                    Si je t'ai filé un coup de main n'oublie pas le + / -
                                    Par contre évite les demandes d'aides en MP, tu sera sympa'

                                    La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                    Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                                      En effet, isWet() peut aussi compter pour l’eau ( Comme les endermans ) et donc faire que l’eau soit acide.

                                      "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                                      ― Jordan B. Peterson

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

                                        Puis-je supprimer ce post ?

                                        Si je t'ai filé un coup de main n'oublie pas le + / -
                                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                                          Pourquoi le supprimer? D’autres personnes peuvent en avoir besoin!

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • Superloup10S Hors-ligne
                                            Superloup10 Modérateurs
                                            dernière édition par

                                            Si ton problème est résolu, passe le résolu mais ne le supprime pas.

                                            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                            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