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.
    • 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