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.4k 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.
    • 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
                                        • C Hors-ligne
                                          CensorHead
                                          dernière édition par

                                          Ok merci, mais je met tout ça où?

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

                                            Les events ? Dans la classe que tu veux il faut juste créer un objet où il y a les fonctions voulues. Personnellement je te conseille de créer une classe à part

                                            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
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB