MFF

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

    Mob chevauchable

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 4 Publieurs 2.8k 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.
    • DiabolicaTrixD Hors-ligne
      DiabolicaTrix Correcteurs Moddeurs confirmés
      dernière édition par

      peut-être que je me trompe mais ton index est un int est tu lui set un boolean?

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

        Eh ben écoute, j’ai essayer avec le code de la classe Entitypig en vain, alors j’ai essayer de prendre un bout de code du mod “dragon mounts” (Je précise que j’utilise et modifie ce code légalement selon les termes définis par son créateur “Barracuda”) et de la modifier selon mes classes en recherchant au goutte à goutte pour ne pas écrire des choses que je ne comprenais pas, mais pour le coup le int/boolean je n’avais même pas remarquer mais il fonctionne très bien et quand je le change en int j’ai des erreurs.

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

          Envoi les erreurs données

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Ah mais c’est pas des erreurs de log c’est juste qu’on me dit : convertir ceci en int ou en boolean,  les suggestions de éclipse basiques

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

              Oui, envoi les avec les lignes concernées

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Bon ben enfait Scarex après avoir chercher encore et encore j’ai modifier mon code comme ceci
                (voici juste les lignes changées) :

                public boolean interact (EntityPlayer entityPlayer){
                ItemStack PlayerItem = entityPlayer.inventory.getCurrentItem();
                
                if (super.interact(entityPlayer))
                        {
                            return true;
                        }
                else if (!isChild() && riddenByEntity == null && PlayerItem.getItem() == Items.saddle) {
                                    setSaddled(true);
                                    return true;
                                }
                
                        else if (isSaddled()){
                            entityPlayer.mountEntity(this);
                            return true;
                            }
                
                        else
                return false;
                
                }
                

                Et la ça fonctionne presque !

                En fait, quand je met la selle et que je clic dessus avec un autre item, surprise : ça MARCHE… ou presque…

                Je peux mettre une selle (invisible car pas encore de texture), je peux monter dessus en tenant un autre item, mais si je clic droit sur le mob sans item dans la main, qu’il soit séllé ou pas, le jeux crash… voici le rapport d’erreur (attention ça fait mal aux yeux)

                ---- Minecraft Crash Report ----
                // Shall we play a game?
                
                Time: 14/09/15 19:24
                Description: Unexpected error
                
                java.lang.NullPointerException: Unexpected error
                at fr.minecraftforgefrance.tutoriel.common.EntityMobDragon.interact(EntityMobDragon.java:61)
                at net.minecraft.entity.EntityLiving.interactFirst(EntityLiving.java:1158)
                at net.minecraft.entity.player.EntityPlayer.interactWith(EntityPlayer.java:1267)
                at net.minecraft.client.multiplayer.PlayerControllerMP.interactWithEntitySendPacket(PlayerControllerMP.java:472)
                at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1514)
                at net.minecraft.client.Minecraft.runTick(Minecraft.java:2045)
                at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040)
                at net.minecraft.client.Minecraft.run(Minecraft.java:962)
                at net.minecraft.client.main.Main.main(Main.java:164)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
                at GradleStart.main(Unknown Source)
                
                A detailed walkthrough of the error, its code path and all known details is as follows:
                ---------------------------------------------------------------------------------------
                
                -- Head --
                Stacktrace:
                at fr.minecraftforgefrance.tutoriel.common.EntityMobDragon.interact(EntityMobDragon.java:61)
                at net.minecraft.entity.EntityLiving.interactFirst(EntityLiving.java:1158)
                at net.minecraft.entity.player.EntityPlayer.interactWith(EntityPlayer.java:1267)
                at net.minecraft.client.multiplayer.PlayerControllerMP.interactWithEntitySendPacket(PlayerControllerMP.java:472)
                at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1514)
                
                -- Affected level --
                Details:
                Level name: MpServer
                All players: 1 total; [EntityClientPlayerMP['Player690'/190, l='MpServer', x=-68,89, y=64,62, z=-83,42]]
                Chunk stats: MultiplayerChunkCache: 556, 556
                Level seed: 0
                Level generator: ID 00 - default, ver 1\. Features enabled: false
                Level generator options:
                Level spawn location: World: (-59,64,-100), Chunk: (at 5,4,12 in -4,-7; contains blocks -64,0,-112 to -49,255,-97), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
                Level time: 676 game time, 676 day time
                Level dimension: 0
                Level storage version: 0x00000 - Unknown?
                Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
                Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
                Forced entities: 61 total; [EntityItem['item.tile.gravel'/5151, l='MpServer', x=-37,19, y=39,13, z=-57,25], EntityItem['item.tile.gravel'/5152, l='MpServer', x=-36,72, y=39,13, z=-56,22], EntityCow['Cow'/57, l='MpServer', x=-139,50, y=67,00, z=-126,50], EntityCow['Cow'/58, l='MpServer', x=-140,13, y=68,00, z=-130,81], EntityCow['Cow'/60, l='MpServer', x=-140,50, y=65,00, z=-135,50], EntityCow['Cow'/61, l='MpServer', x=-146,50, y=64,00, z=-35,56], EntityCow['Cow'/62, l='MpServer', x=-145,47, y=64,00, z=-39,47], EntityCow['Cow'/63, l='MpServer', x=-145,47, y=64,00, z=-36,81], EntityCow['Cow'/64, l='MpServer', x=-143,09, y=63,00, z=-35,97], EntityCow['Cow'/70, l='MpServer', x=-146,53, y=64,00, z=-39,59], EntityCow['Cow'/72, l='MpServer', x=-144,34, y=63,00, z=-35,47], EntityCow['Cow'/73, l='MpServer', x=-146,44, y=64,00, z=-29,38], EntityPig['Pig'/74, l='MpServer', x=-122,50, y=64,00, z=-12,50], EntityPig['Pig'/75, l='MpServer', x=-123,50, y=64,00, z=-14,50], EntityPig['Pig'/76, l='MpServer', x=-126,22, y=64,00, z=-16,09], EntityPig['Pig'/77, l='MpServer', x=-129,69, y=65,00, z=-13,50], EntityPig['Pig'/94, l='MpServer', x=-77,56, y=63,00, z=-40,78], EntityPig['Pig'/95, l='MpServer', x=-79,50, y=63,00, z=-39,50], EntityPig['Pig'/96, l='MpServer', x=-83,28, y=63,00, z=-36,78], EntityPig['Pig'/97, l='MpServer', x=-84,50, y=63,00, z=-34,50], EntitySheep['Sheep'/115, l='MpServer', x=-25,53, y=68,00, z=-129,22], EntitySheep['Sheep'/116, l='MpServer', x=-27,50, y=66,00, z=-132,16], EntitySheep['Sheep'/117, l='MpServer', x=-29,50, y=66,00, z=-132,50], EntitySheep['Sheep'/118, l='MpServer', x=-30,50, y=66,00, z=-129,50], EntityPig['Pig'/127, l='MpServer', x=-22,06, y=64,00, z=-27,84], EntityPig['Pig'/128, l='MpServer', x=-19,50, y=66,00, z=-18,19], EntityPig['Pig'/129, l='MpServer', x=-17,50, y=66,00, z=-18,50], EntityPig['Pig'/130, l='MpServer', x=-13,50, y=66,00, z=-18,50], EntitySkeleton['Skeleton'/2221, l='MpServer', x=-106,72, y=42,59, z=-92,84], EntityCreeper['Creeper'/2241, l='MpServer', x=-16,50, y=15,00, z=-73,50], EntityClientPlayerMP['Player690'/190, l='MpServer', x=-68,89, y=64,62, z=-83,42], EntityBat['Bat'/263, l='MpServer', x=-8,75, y=14,10, z=-32,25], EntityBat['Bat'/265, l='MpServer', x=-15,75, y=18,10, z=-34,75], EntityMobTutoriel['Tutorial Mob'/283, l='MpServer', x=-39,38, y=34,00, z=-79,28], EntitySkeleton['Skeleton'/284, l='MpServer', x=-38,44, y=33,00, z=-81,06], EntityCreeper['Creeper'/294, l='MpServer', x=-16,50, y=13,00, z=-65,50], EntityMobDragon['entity.mobDragon.name'/5416, l='MpServer', x=-70,07, y=63,00, z=-85,18], EntityItem['item.tile.mushroom'/5422, l='MpServer', x=-76,06, y=65,13, z=-119,53], EntityItem['item.tile.gravel'/2432, l='MpServer', x=-37,22, y=39,13, z=-57,78], EntityCreeper['Creeper'/418, l='MpServer', x=-57,91, y=50,00, z=-34,50], EntityCreeper['Creeper'/419, l='MpServer', x=-59,50, y=50,00, z=-27,50], EntityZombie['Zombie'/488, l='MpServer', x=0,50, y=27,00, z=-104,50], EntityZombie['Zombie'/5615, l='MpServer', x=-14,50, y=19,00, z=-57,50], EntityZombie['Zombie'/5629, l='MpServer', x=-132,50, y=21,00, z=-48,50], EntityZombie['Zombie'/516, l='MpServer', x=-29,50, y=30,00, z=-45,03], EntityBat['Bat'/555, l='MpServer', x=3,90, y=18,87, z=-50,66], EntityBat['Bat'/556, l='MpServer', x=-5,59, y=16,10, z=-38,75], EntityBat['Bat'/558, l='MpServer', x=1,16, y=18,00, z=-47,40], EntityBat['Bat'/559, l='MpServer', x=-1,70, y=11,00, z=-32,63], EntityBat['Bat'/560, l='MpServer', x=-3,52, y=12,17, z=-31,30], EntityBat['Bat'/646, l='MpServer', x=-11,63, y=14,51, z=-24,53], EntityCreeper['Creeper'/662, l='MpServer', x=-42,47, y=50,00, z=-38,66], EntityCreeper['Creeper'/663, l='MpServer', x=-43,09, y=51,00, z=-42,53], EntityZombie['Zombie'/665, l='MpServer', x=-42,25, y=51,00, z=-42,50], EntitySkeleton['Skeleton'/5825, l='MpServer', x=-57,50, y=52,00, z=-15,50], EntitySkeleton['Skeleton'/5826, l='MpServer', x=-56,50, y=52,00, z=-16,50], EntityBat['Bat'/724, l='MpServer', x=-141,78, y=34,29, z=-145,75], EntityBat['Bat'/726, l='MpServer', x=-139,25, y=35,10, z=-143,25], EntityBat['Bat'/780, l='MpServer', x=0,65, y=14,30, z=-20,86], EntityCreeper['Creeper'/5953, l='MpServer', x=-48,50, y=52,00, z=-40,50], EntityCreeper['Creeper'/5954, l='MpServer', x=-50,50, y=52,00, z=-39,50]]
                Retry entities: 0 total; []
                Server brand: fml,forge
                Server type: Integrated singleplayer server
                Stacktrace:
                at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
                at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2567)
                at net.minecraft.client.Minecraft.run(Minecraft.java:991)
                at net.minecraft.client.main.Main.main(Main.java:164)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
                at GradleStart.main(Unknown Source)
                
                – System Details --
                Details:
                Minecraft Version: 1.7.10
                Operating System: Windows 7 (amd64) version 6.1
                Java Version: 1.8.0_60, Oracle Corporation
                Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                Memory: 662957872 bytes (632 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                IntCache: cache: 1, tcache: 1, allocated: 12, tallocated: 94
                FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 4 mods loaded, 4 mods active
                States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
                UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
                UCHIJAAAA Forge{10.13.4.1448} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
                UCHIJAAAA modtutoriel{1.0.0} [Mod Tutoriel] (bin)
                GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 347.52' Renderer: 'GeForce 840M/PCIe/SSE2'
                Launched Version: 1.7.10
                LWJGL: 2.9.1
                OpenGL: GeForce 840M/PCIe/SSE2 GL version 4.5.0 NVIDIA 347.52, NVIDIA Corporation
                GL Caps: Using GL 1.3 multitexturing.
                Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
                Anisotropic filtering is supported and maximum anisotropy is 16.
                Shaders are available because OpenGL 2.1 is supported.
                
                Is Modded: Definitely; Client brand changed to 'fml,forge'
                Type: Client (map_client.txt)
                Resource Packs: []
                Current Language: English (US)
                Profiler Position: N/A (disabled)
                Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                Anisotropic Filtering: Off (1)
                
                1 réponse Dernière réponse Répondre Citer 0
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  Ok c’est très normal car tu n’as pas mis de null-check dans ton code avant d’initialiser ta variable de type ItemStack. Il faut déjà vérifier si getCurrentItem() n’est pas null avant de regarder si le joueur tient une selle. Comme ceci alors :

                  
                  public boolean interact (EntityPlayer entityPlayer){
                  
                  if (super.interact(entityPlayer))
                         {
                             return true;
                         }
                  else if (entityPlayer.inventory.getCurrentItem() != null)
                  {
                  ItemStack PlayerItem = entityPlayer.inventory.getCurrentItem();
                  if(!isChild() && riddenByEntity == null && PlayerItem.getItem() == Items.saddle)
                  {
                                     setSaddled(true);
                                     return true;
                  }
                                 }
                  
                         else if (isSaddled()){
                             entityPlayer.mountEntity(this);
                             return true;
                             }
                  
                         else
                  return false;
                  
                  }
                  
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • C Hors-ligne
                    casp3r
                    dernière édition par

                    Merci Julot, bon je ne peux toujours pas monter dessus quand j’ai rien dans la main mais déjà le jeu a cesser de crash et je pense qu’en fouillant un peu je réglerais ce problème, le plus gros étant déjà régler.

                    Je passe en résolu 🙂

                    PS : Quand tout les problèmes auront été résolus et que j’aurais le résultat attendu je pense soumettre un tuto pour créer un mob “chevauchable” parce que j’ai chercher par petits morceaux et c’est moins évident qu’il n’y paraît en regardant les autres classes de ce type 😕

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

                      Essaie ça pour pouvoir monter dessus même avec rien en main

                      public boolean interact (EntityPlayer entityPlayer){
                      
                      if (super.interact(entityPlayer))
                      {
                      return true;
                      }
                      else if (entityPlayer.inventory.getCurrentItem() != null)
                      {
                      ItemStack PlayerItem = entityPlayer.inventory.getCurrentItem();
                      if(!isChild() && riddenByEntity == null)
                      {
                      if(PlayerItem.getItem() == Items.saddle)
                      {
                      setSaddled(true);
                      return true;
                      }
                      else
                      {
                      setSaddled(true);
                      return true;
                      }
                      }
                      }
                      
                      else if (isSaddled()){
                      entityPlayer.mountEntity(this);
                      return true;
                      }
                      
                      else
                      return false;
                      
                      }
                      
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • C Hors-ligne
                        casp3r
                        dernière édition par

                        Merci Julot, mais ensuite je ne pouvais plus monter avec un item dans la main alors je donne juste le code final au cas ou quelqu’un d’autre cherche la solution, mais c’est grâce a toi que j’ai trouver la fin 😉

                        public boolean interact (EntityPlayer entityPlayer){
                        
                        if (super.interact(entityPlayer))
                                {
                                    return true;
                                }
                        else if (entityPlayer.inventory.getCurrentItem() != null){
                        ItemStack PlayerItem = entityPlayer.inventory.getCurrentItem();
                        
                        if (!isChild() && riddenByEntity == null && PlayerItem.getItem() == Items.saddle) {
                                            setSaddled(true);
                                            return true;
                                        } 
                        else if (isSaddled()){
                        entityPlayer.mountEntity(this);
                                return true;
                                        }
                        else{
                        setSaddled(true);
                        return true;
                        }
                        }
                        
                                else if (isSaddled()){
                                    entityPlayer.mountEntity(this);
                                    return true;
                                    }
                        
                        return false; }
                        

                        Merci à tous 🙂

                        edit : en fait maintenant je peux monter sans selle si j’ai un objet en main ahah

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

                          Ton code est mal organisé. … En plus c est pas du tout optimisé,  si tu t étais relu, t aurais vu que t as deux fois le même else if…
                          Et ton problème vient de ta condition else a la fin
                          Tu sais au moins a quoi elle sert ?! Si oui tu ne l aurais pas mis …

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

                            Ben si je ne me trompe pas le else en gros : si non, pas d’interaction

                            Sauf si je me trompe?

                            Et pour le double else if, c’est pas que je ne me suis pas relu, à la base c’était un pour la condition si l’item dans la main est nul et l’autre s’il item est différent de null, je sais que c’est pas du tout optimisé mais pour le moment c’est plus un apprentissage que la volonté de créer un mod fonctionnel et de le partager.

                            Edit : voici mon code finalement fonctionnel même si pas vraiment optimisé

                            
                            public boolean interact (EntityPlayer entityPlayer){
                            
                            if (super.interact(entityPlayer))
                                    {
                                        return true;
                                    }
                            
                            else if (isSaddled()){
                                    entityPlayer.mountEntity(this);
                                    return true;}
                            
                            else if (entityPlayer.inventory.getCurrentItem() != null){
                            ItemStack PlayerItem = entityPlayer.inventory.getCurrentItem();
                            
                            if (!isChild() && (this.riddenByEntity == null || this.riddenByEntity == entityPlayer)&& PlayerItem.getItem() == Items.saddle) {
                                                setSaddled(true);
                                                return true;
                                            }
                            }
                            
                            return false; 
                            }
                            
                            

                            PS : Si tu as des critique constructives, par exemple l’optimisation de ce code Julot10085, je suis preneur car je suis encore un débutant en modding

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

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB