MFF

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

    Un item mangeable

    Planifier Épinglé Verrouillé Déplacé Les items
    1.6.x
    45 Messages 11 Publieurs 22.6k Vues 3 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.
    • MrCupCakeMonsterM Hors-ligne
      MrCupCakeMonster
      dernière édition par robin4002

      Salut !
      Je fais un tutoriel sur comment créer un item qui se mange !

      Crée votre item

      Commencez par déclarer votre item :

      public static Item TutorialEgg;
      

      Sans oublier d’importer “Item.java”
      Ajoutez ensuite dans la fonction “PreInit” :

      TutorialEgg = new ItemTutorialEgg(ID, Gigot, Saturation, Nourriture loup).setUnlocalizedName("TutorialEgg").setTextureName("modtutoriel:ChocolateEgg");
      

      ID = L’id de votre Item(int)
      Gigot = le nombre de demi-gigot qui seront régénérés (int 5 par exemple),
      Saturation = la saturation de votre nourriture (Float, 1.5F par exemple),
      Nourriture loup = Si la nourriture est pour les loups (boolean, false = non et true = oui)

      ItemFoodTuto est souligné, car il faut créer cette classe, dans la seconde partie du tuto 😄 !

      Optionnel, enregistrez l’item :

      GameRegistry.registerItem(TutorialEgg, "TutorialEgg", "ModTutoriel");
      

      Pour la texture et le nom, le principe est le même que pour un item basique.

      La classe de l’item

      Créez la classe ItemFoodTuto, et mettez ce code dedans :

      package tutoriel.common;
      
      import net.minecraft.item.ItemFood;
      
      public class ItemTutorialEgg extends ItemFood
      {
          public ItemTutorialEgg(int id, int foodAmount, float saturation, boolean isWolfFood)
          {
              super(id, foodAmount, saturation, isWolfFood);
          }
      }
      

      Si vous voulez que votre item puisse se boire, rajoutez :

         public EnumAction getItemUseAction(ItemStack par1ItemStack)
         {
             return EnumAction.drink;
         }
      

      Ajouter un effet à votre item lorsqu’il est mangé

      Pour ce faire, ajoutez dans votre item dans le “PreInit” :

      .setPotionEffect(Potion.confusion.id, 30, 0, 1.0F)
      

      Potion.confusion.id = Remplacez par Potion.votreEffet.id,
      30 = Durée de l’effet
      0 = Force (speed 1, speed 2 par exemple)
      1.0F = Chance en % d’avoir l’effet (1.0F étant 100%, 0.1F pour avoir 10%)

      Attention, cette méthode se trouve dans ItemFood, pour qu’elle fonctionne, utilisez cette syntaxe :

      TutorialEgg = (new ItemTutorialEgg(TutorialEggID, 5, 4.5F, false)).setPotionEffect(Potion.regeneration.id, 5, 1, 1.0F)…...
      

      Le setPotionEffect doit être avant le .setUnlocalizedName

      Voir sur github

      Voila, ce tutoriel est finis !
      Laissez un commentaire, aimez mon message !
      À plus pour d’autres tutos 😄

      Questions/Réponses

      Q : Comme rendre l’item mangeable même quand la barre de faim est pleine ?
      R : De la même façon que pour setPotionEffect, ajoutez .setAlwaysEdible() dans la déclaration de l’item avant le .setUnlocalizedName

      Mes tutos :

      >! Un item mangeable
      [url=http://www.minecraftforgefranc…

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

        Bon tutoriel, je valide et j’ajoute au menu 🙂

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

          Merci 🙂

          Mes tutos :

          >! Un item mangeable
          [url=http://www.minecraftforgefranc…

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

            Salut,

            Quand tu dis " Si vous voulez que votre item puisse se boire, rajoutez : (…) return EnumAction.eat; ", faut pas plutôt remplacer par return EnumAction.drink; ?

            Et tu pourrais rajouter la méthode pour garder le récipient? Je crois que c’est celle-ci :

            public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
            {
            super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
            return new ItemStack(bowlEmpty)
            }
            

            (d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)

            1 réponse Dernière réponse Répondre Citer 0
            • elias54E Hors-ligne
              elias54 Administrateurs
              dernière édition par

              @‘Minecraftienne’:

              public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
              {
              super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
              return new ItemStack(bowlEmpty)
              }
              

              (d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)

              Hm… ça te mets quoi exactement comme erreur ?

              Mon site | GitHub

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

                Si je fais : return new ItemStack(ChopeDeBiereVide);
                => ChopeDeBiereVide cannot be resolved to a variable

                Mais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?

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

                  Tu as raison minecraftienne, j’ai changé par “drink”, et pour récupérer le bol, il faut ajouter ceci :

                  public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
                  {
                  super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
                  return new ItemStack(taClassPrincipale.taChopeDeBiereVide);
                  }
                  

                  Et remplace :
                  taClassPrincipale par tu sais quoi ^^ (ta class principale) , et taChopeDeBiereVide par ton item qui sera donné après avoir bût (surement) ta bière 🙂

                  Mes tutos :

                  >! Un item mangeable
                  [url=http://www.minecraftforgefranc…

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

                    Merci ça fonctionne 😉

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

                      Derien 🙂

                      Mes tutos :

                      >! Un item mangeable
                      [url=http://www.minecraftforgefranc…

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

                        @‘Minecraftienne’:

                        Mais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?

                        La classe de ton Item est extends ItemFood et ItemFood est extends Item, comme les items vanilles sont déclarés dans Item.java, bowlEmpty est valide, tout comme this.bowlEmpty l’est aussi.
                        Donc pour les items de ton mod il faut bien mettre la classe principale devant.

                        Voila pour l’explication 😉

                        Ha, en passant :
                        https://github.com/MCNanotech/ModTutoriel/commit/1515e305c61b6f8c26cf3b1b32d9c3bc0e9d3887
                        J’ai aussi modifier un peu le tutoriel, j’ai ajouté l’enregistrement de l’item (qui reste optionnel), la texture, le nom et j’ai enlevé les importations inutiles dans la classe de l’item

                        1 réponse Dernière réponse Répondre Citer 1
                        • A Hors-ligne
                          Artnerm
                          dernière édition par

                          Très bon tutoriel, ça marche à merveille 😉 J’aimerais savoir comment faire pour pouvoir manger l’item sans que notre barre de faim sois descendu, comme pour les pommes d’or par exemple (j’ai chercher et j’ai pas trouver :/) merci de vos réponses ! 🙂

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

                            public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                            {
                            player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
                            return stack;
                            }
                            

                            Je crois que c’est ça.

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

                              Merci pour la réponse robin, ça marche nickel ! Un tuto sur les générations bientôt ? 🙂

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

                                @‘robin4002’:

                                public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                                {
                                player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
                                return stack;
                                }
                                

                                Je crois que c’est ça.

                                Y’a un autre code laaaaaargement plus simple, si je le retrouve x)

                                Moddeur à la retraite et développeur de trucs en Java.

                                J'aide les gens comme je peux, alors si mon message v…

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

                                  Impossible pour moi de mettre le setpotion effect…
                                  Suis-je le seul à avoir se problème ?

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

                                    Quel erreur eclipse te donne ?

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

                                      @‘robin4002’:

                                      Quel erreur eclipse te donne ?

                                      Aucune erreur, mais quand je créé mon item ainsi : ```java
                                      StrangeCupcake = new ItemStrangeCupcake(6047, 7, 1, false).setUnlocalizedName(“StrangeCupcake”).setTextureName(“landcast:strangecupcake”).setCreativeTab(CreativeTabs.tabFood).setPotionEffect(Potion.confusion.id, 30, 0, 1.0F);

                                      Il me souligne le .setpotioneffect en disant qu'il n'existe pas…
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood

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

                                          Le set potion effect est aussi buggé chez moi, j’utilise un autre code plus simple (onEaten ou un autre truc dans le genre)

                                          Moddeur à la retraite et développeur de trucs en Java.

                                          J'aide les gens comme je peux, alors si mon message v…

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

                                            @‘robin4002’:

                                            Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood

                                            Vérifié, il est bien en extends ItemFood…

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB