MFF

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

    Création d'un Chest Detector

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    48 Messages 7 Publieurs 9.5k 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

      J’ai modifié le message.
      Tu as visiblement des erreurs dans ton code, normalement eclipse te les indiques.

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

        J’ai finalement régler les erreurs (c’était tout bête, j’avais juste oublier de faire tout les imports) mais maintenant quand je lance minecraft le jeu fait comme si l’item n’existait pas.

        1 réponse Dernière réponse Répondre Citer 0
        • BrokenSwingB Hors-ligne
          BrokenSwing Moddeurs confirmés Rédacteurs
          dernière édition par

          Tu l’as ajouté dans un onglet créatif ? Au pire essai de te le give, il doit s’appeler tonModID:sonNom

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

            Il n’existe même pas dans le /give.

            1 réponse Dernière réponse Répondre Citer 0
            • BrokenSwingB Hors-ligne
              BrokenSwing Moddeurs confirmés Rédacteurs
              dernière édition par

              Envoie ta classe principale + la classe de ton objet dans des balises java

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

                package ErderionPackage.init;
                
                import java.util.ArrayList;
                import java.util.List;
                
                import cpw.mods.fml.common.Mod.EventHandler;
                import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                import cpw.mods.fml.common.registry.GameRegistry;
                import net.minecraft.entity.Entity;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.tileentity.TileEntity;
                import net.minecraft.world.ChunkCoordIntPair;
                import net.minecraft.world.World;
                
                public class ItemTileEntityFinder extends Item {
                
                    public static Item tileEntityFinder;
                
                    @EventHandler
                    public void preInit(FMLPreInitializationEvent event) {
                         tileEntityFinder= new ItemTileEntityFinder() .setUnlocalizedName("chest_detector");
                         GameRegistry.registerItem(tileEntityFinder, "tileEntityFinder");
                    }
                
                    @Override
                    public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) {
                        if(held) {
                            List <tileentity>tiles = world.loadedTileEntityList;
                            ArrayList <tileentity>tilesNear = new ArrayList<tileentity>();
                            ChunkCoordIntPair entityChunk = world.getChunkFromBlockCoords((int)entity.posX, (int)entity.posZ).getChunkCoordIntPair();
                            for(TileEntity tile : tiles) {
                                ChunkCoordIntPair tileChunk = world.getChunkFromBlockCoords(tile.xCoord, tile.zCoord).getChunkCoordIntPair();
                                if(tileChunk.chunkXPos >= entityChunk.chunkXPos - 2 &&
                                        tileChunk.chunkXPos <= entity.chunkCoordX + 2 &&
                                        tileChunk.chunkZPos >= entity.chunkCoordZ - 2 &&
                                        tileChunk.chunkZPos <= entity.chunkCoordZ + 2) {
                                    tilesNear.add(tile);
                                }
                            }
                        }
                    }
                
                    public static void init()
                    {
                        // TODO Auto-generated method stub
                
                    }
                
                    public static void register()
                    {
                        // TODO Auto-generated method stub
                
                    }
                
                }
                
                

                La classe de mon item

                package ErderionPackage;
                
                import ErderionPackage.Proxy.CommonProxy;
                import ErderionPackage.init.BlockMod;
                import ErderionPackage.init.ItemTileEntityFinder;
                import cpw.mods.fml.common.Mod;
                import cpw.mods.fml.common.Mod.EventHandler;
                import cpw.mods.fml.common.SidedProxy;
                import cpw.mods.fml.common.event.FMLInitializationEvent;
                import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                
                @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
                
                public class Erderion
                {
                   @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
                   public static CommonProxy proxy;
                
                   @EventHandler
                   public void preInit(FMLPreInitializationEvent event)
                   {
                       BlockMod.init();
                       BlockMod.register();
                       ItemTileEntityFinder.init();
                       ItemTileEntityFinder.register();
                   }
                
                   @EventHandler
                   public void init(FMLInitializationEvent event)
                   {
                       proxy.registerRenders();
                   }
                
                   @EventHandler
                   public void postInit(FMLPostInitializationEvent event)
                   {
                
                   }
                }
                
                

                La classe principale de mon mod</tileentity></tileentity></tileentity>

                1 réponse Dernière réponse Répondre Citer 0
                • BrokenSwingB Hors-ligne
                  BrokenSwing Moddeurs confirmés Rédacteurs
                  dernière édition par

                  Aïe aïe aïe ….

                  
                  public class ItemTileEntityFinder extends Item {
                  
                  @Override
                  public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) {
                  if(held) {
                  List <tileentity>tiles = world.loadedTileEntityList;
                  ArrayList <tileentity>tilesNear = new ArrayList<tileentity>();
                  ChunkCoordIntPair entityChunk = world.getChunkFromBlockCoords((int)entity.posX, (int)entity.posZ).getChunkCoordIntPair();
                  for(TileEntity tile : tiles) {
                  ChunkCoordIntPair tileChunk = world.getChunkFromBlockCoords(tile.xCoord, tile.zCoord).getChunkCoordIntPair();
                  if(tileChunk.chunkXPos >= entityChunk.chunkXPos - 2 &&
                  tileChunk.chunkXPos <= entity.chunkCoordX + 2 &&
                  tileChunk.chunkZPos >= entity.chunkCoordZ - 2 &&
                  tileChunk.chunkZPos <= entity.chunkCoordZ + 2) {
                  tilesNear.add(tile);
                  }
                  }
                  }
                  }
                  
                  }
                  
                  
                  
                  @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
                  public class Erderion
                  {
                  @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
                  public static CommonProxy proxy;
                  
                  @Instance
                  public static Erderion instance;
                  
                  @EventHandler
                  public void preInit(FMLPreInitializationEvent event)
                  {
                  BlockMod.init();
                  BlockMod.register();
                  
                  // A placer dans BlockMod.init()
                  // tileEntityFinder= new ItemTileEntityFinder() .setUnlocalizedName("chest_detector");
                  // A placer dans BlockMod.register()
                  // GameRegistry.registerItem(tileEntityFinder, "tileEntityFinder");
                  }
                  
                  @EventHandler
                  public void init(FMLInitializationEvent event)
                  {
                  proxy.registerRenders();
                  }
                  
                  @EventHandler
                  public void postInit(FMLPostInitializationEvent event)
                  {
                  
                  }
                  }
                  
                  ```</tileentity></tileentity></tileentity>
                  1 réponse Dernière réponse Répondre Citer 0
                  • C Hors-ligne
                    CensorHead
                    dernière édition par

                    Le BlockMod marche, c’est le TileEntityFinder qui ne marche pas.

                    1 réponse Dernière réponse Répondre Citer 0
                    • BrokenSwingB Hors-ligne
                      BrokenSwing Moddeurs confirmés Rédacteurs
                      dernière édition par

                      Ah ok, j’ai compris comment tu procédais, c’est pas forcément la meilleur des manières c’est pas propre du tout, mais admettons :
                      Tu aurais donc :

                      
                      public class ItemTileEntityFinder extends Item {
                      
                      public static Item tileEntityFinder;
                      
                      @Override
                      public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) {
                      if(held) {
                      List <tileentity>tiles = world.loadedTileEntityList;
                      ArrayList <tileentity>tilesNear = new ArrayList<tileentity>();
                      ChunkCoordIntPair entityChunk = world.getChunkFromBlockCoords((int)entity.posX, (int)entity.posZ).getChunkCoordIntPair();
                      for(TileEntity tile : tiles) {
                      ChunkCoordIntPair tileChunk = world.getChunkFromBlockCoords(tile.xCoord, tile.zCoord).getChunkCoordIntPair();
                      if(tileChunk.chunkXPos >= entityChunk.chunkXPos - 2 &&
                      tileChunk.chunkXPos <= entity.chunkCoordX + 2 &&
                      tileChunk.chunkZPos >= entity.chunkCoordZ - 2 &&
                      tileChunk.chunkZPos <= entity.chunkCoordZ + 2) {
                      tilesNear.add(tile);
                      }
                      }
                      }
                      }
                      
                      public static void init()
                      {
                      tileEntityFinder= new ItemTileEntityFinder() .setUnlocalizedName("chest_detector");
                      }
                      
                      public static void register()
                      {
                      GameRegistry.registerItem(tileEntityFinder, "tileEntityFinder");
                      }
                      
                      }
                      
                      

                      Et pour ta classe principale, garde la première que tu m’as envoyée</tileentity></tileentity></tileentity>

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

                        Maintenant, le Chest Detector est réapparu mais il ne marche pas, c’est juste un item inutile.

                        1 réponse Dernière réponse Répondre Citer 0
                        • BrokenSwingB Hors-ligne
                          BrokenSwing Moddeurs confirmés Rédacteurs
                          dernière édition par

                          Qui t’as dit qu’on avait terminé ? Là tu récupérer les TE autour de toi mais tu n’en fait rien, il faut les afficher maintenant … Et c’est pas le plus simple vu le design que tu veux faire …

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

                            Donc qu’est ce que je dois faire ^^

                            1 réponse Dernière réponse Répondre Citer 0
                            • BrokenSwingB Hors-ligne
                              BrokenSwing Moddeurs confirmés Rédacteurs
                              dernière édition par

                              Soit tu fais envoie du serveur vers le client le nombre de TE pour qu’il l’affiche ensuite, soit tu stock ce nombre dans les tags NBT du l’objet et tu l’affiche ensuite.
                              Pour afficher, dans tous les cas tu devra passer par l’event RenderGameOverlayEvent

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

                                Alors encore plus simple : Tu décompile Paladium et tu as ta réponse, (C’est pas original si tu veux de l’originalité faut réflechir a quelque chose de jamais sortie sur le marché)
                                Hormis ça il te manque un overlay ou un chatcomponent en fonction de se qur tu veux

                                1 réponse Dernière réponse Répondre Citer 0
                                • BrokenSwingB Hors-ligne
                                  BrokenSwing Moddeurs confirmés Rédacteurs
                                  dernière édition par

                                  Uhmm … C’est bien ça mosca, dire aux gens de décompiler un autre mod pour choper les sources, laisse-le apprendre, au moins ça lui fait un peu pratiquer

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

                                    Je veux dire par la que si c’est pour copier autant bien le faire et pas demander –’ C’est pas une incitation mais une constatation

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

                                      moscaphone421, le Chest Detector à de grosses diffèrence par rapport à l’Unclaim Finder de palladium, même si les deux ont à peux près la même utilité. Et BrokenSwing, comment je fait pour faire tt ça? Pourais tu m’aider stp.

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

                                        Censor ça reste sur un principe égal, il y a des milliards d’autres façon, c’est pas comme ça que tu vas attirer du monde.
                                        Comme je l’ai toujours dis : Pourquoi allé sur ce serveur alors que l’autre a les meme choses avec du monde ?

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

                                          Il y a plus que le Chest Detector sur mon serveur, il y a beaucoup d’autres ajouts.

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

                                            J’écris un deuxième poste pour te dire :
                                            A partir de ton code il faut un event de render : RenderGameEvent il me semble que tu execute que du coter client (le serveur n’a pas d’image a afficher)
                                            Ensuite dedans tu fais un drawstring fontrender il me semble aussi
                                            Après tu draw une image ça change de 1.8.9 a 1.7.10 me semble aussi
                                            Quelques recherche forum et tu trouveras ensuite tu prends la valeur que tu as avec ton item dans la main et tu affiche dans le string qui se dessine
                                            N’oublie pas deux choses
                                            L’event ne dois etre la que lorsque tu as l’item dans la main
                                            Ne foire pas le reset en fonction des déplacement que ça ne s’ajoute pas en fonction du mouvement de ton perso

                                            Edit : sinon a la place de l’item pour te démarquer pourquoi ne pas faire un gui qui reproduit la map avec des pourcentage / chunks

                                            Ou bien une perle comme celle de l’end qui te montre le portail mais elle pointe les tiles ?

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB