• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Modifier le drop d'un bloc

Anciennes versions
1.6.4
5
12
4.0k
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.
  • Vebert
    Vebert dernière édition par 3 janv. 2014, 15:21

    Bonjours,
    pour mon mod j’aurais besoin de modifié le drop de certains bloc vanilla en autre la dirt et la grass.

    J’ai fait des recherches pour trouver comment faire avec forge sans trouver de méthodes direct.
    La solution que j’utilisais jusqu’à maintenant était de supprimer le bloc vanilla avec ce code (pour la dirt):

    Block.blocksList[Block.dirt.blockID] = null;
    

    et de recréer un bloc pour le remplacer avec les caractéristiques voulu.

    Le problèmes c’est que supprimer le bloc de grass de la liste des bloc fait planter le jeu au lancement même si celui-ci est remplacé après. Je suppose que cela vient de son type (BlockGrass et non Block) mais je ne trouve pas de solution pour résoudre ça.

    Pour résumer je cherche:
       -une méthode pour changer le drop des bloc vanilla
       -(et/ou) une méthode pour remplacer le bloc grass sans faire planter le jeu

    Merci de votre aide.

    1 réponse Dernière réponse Répondre Citer 0
    • kevin_68
      kevin_68 Moddeurs confirmés dernière édition par 3 janv. 2014, 15:27

      http://www.minecraftforgefrance.fr/showthread.php?tid=404
      Désolé, erreur 404 solution no found.

      Plus sérieusement, pour le drop il existe l’event drop de forge et pour remplacer le bloc d’herbe, le bloc par qui remplace le bloc d’herbe est il extends BlockGrass ?


      Mettez à jours vers la dernière version stable (1.8.9 voir même…

      1 réponse Dernière réponse Répondre Citer 0
      • Vebert
        Vebert dernière édition par 3 janv. 2014, 15:43

        Je vais aller voir du coté de l’event drop de forge ( j’ai du passer a coté ).

        Le bloc qui remplace le BlockGrass est bien extends BlockGrass mais dans le doute j’ai revu mon code et il y avait une erreur d’ID sur celui-ci.
        Donc pour le bloc d’herbe j’ai une erreur à la génération (ou au chargement) de la map c’est déjà mieu 😛 .

        Merci pour votre réponse rapide je vais essayer de résoudre le problème pour le bloc d’herbe et aller voir comment marche l’event drop si tout marche bien je posterais la solution plus en détail et je clôturerais le post.

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 3 janv. 2014, 16:02

          @ForgeSubscribe
          public void onBlockDrop(HarvestDropsEvent event)
          {
          if(event.block.blockID == Block.grass.blockID)
          {
          event.drops.clear(); //supprime la liste de drop actuel
          event.drops.add(new ItemStack(Block.stone)); //ajoute un bloc de pierre à la liste des drops
          }
          }

          La classe a importer :
          import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;

          1 réponse Dernière réponse Répondre Citer 1
          • Vebert
            Vebert dernière édition par 3 janv. 2014, 16:11

            Merci de m’avoir mâché le travail :p.

            1 réponse Dernière réponse Répondre Citer 0
            • N
              neverslands dernière édition par 14 mars 2017, 21:41

              J’ai un probleme avec la commance “if(event.block.blockID == Block.grass.blockID)”, le programme ne reconnait pas le block entre event et blockID

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 14 mars 2017, 21:45

                Existe plus depuis la 1.7.x
                Retires simplement les .blockID.

                1 réponse Dernière réponse Répondre Citer 0
                • N
                  neverslands dernière édition par 14 mars 2017, 21:58

                  Le logiciel ne reconnait aucun mot en gras, il me manque juste ça et je pense que c’est okay …

                  **@ForgeSubsribe **                                         
                      public void onBlockDrop(HarvestDropsEvent event) {

                  if(event.block == ModBlocks.rubyore) {
                              event.getDrops().clear();
                              ItemStack stack = new ItemStack(ModItems.ruby);
                              event.getDrops().add(stack);
                          }

                  1 réponse Dernière réponse Répondre Citer 0
                  • AymericRed
                    AymericRed dernière édition par 14 mars 2017, 22:02

                    Il faut remplacer le @ForgeSubscribe par @SubscribeEvent (puis l’importer) et le event.block à du être remplacé par event.getBlock() (pas sur à 100% dépend du la version où tu es).

                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                    1 réponse Dernière réponse Répondre Citer 0
                    • N
                      neverslands dernière édition par 14 mars 2017, 22:17

                      Désolé de vous embèter avec ça mais j’ai actuellement ceci mais ça marche pas vraiment …

                      @SubscribeEvent
                          public void onBlockDrop(HarvestDropsEvent event) {

                      if(event.getState().getBlock() == ModBlocks.rubyore) {
                                  event.getDrops().clear();
                                  ItemStack stack = new ItemStack(ModItems.ruby);
                                  event.getDrops().add(stack);
                              }                    
                          }

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 14 mars 2017, 22:19

                        https://www.minecraftforgefrance.fr/showthread.php?tid=716

                        1 réponse Dernière réponse Répondre Citer 0
                        • N
                          neverslands dernière édition par 14 mars 2017, 22:51

                          Merci de votre aide, désolé pour le dérangement, j’ai finalement trouver la solution ❤

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

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB