MFF

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

    Item qui rend de la durabilité

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    19 Messages 7 Publieurs 3.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.
    • M Hors-ligne
      mosca421
      dernière édition par

      Bonjours j’aurais une question il y aurait moyen de faire qu’un item rende de la durabilité aux pièce d’armure équiper, si oui comment.
      J’ai fais quelques recherche sur les sources de botania qui lui me donne :

      
      public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
      return par2ItemStack.getItem() == Mods.Paladium && par2ItemStack.getItemDamage() == 4 ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);
      }
      
      

      (j’ai viré la réparation a l’enclume le temps de test)
      Si quelqu’un a une idée 😃

      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

        Salut,
        getIsRepairable c’est pour la réparation via enclume.
        Ce que tu souhaites c’est que lorsque l’item est porté dans l’inventaire l’armure se restaure. Mais comment ? D’un coup ? Progressivement ? L’item doit-il s’user en même temps ?

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

          Elle se restaure petit a petit en enlevant de la durabilité sur l’item une fois que l’item est a 0 il ne casse pas mais ne regen plus

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

            Un truc comme ça ?

            
            @Override
            public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean selected)
            {
            if(entity instanceof EntityPlayer) //Si c'est un joueur
            {
            EntityPlayer player = (EntityPlayer) entity; //On cast
            for(int i = 0; i < 4; i++) //Il y a 4 pièces d'armure
            {
            ItemStack armor = player.getCurrentArmor(i); //On récupère la pièce
            if(armor != null) //Cas où le slot est vide on ne rentre pas
            {
            //Vérifie qu'on répare pas un item entièrement réparé et qu'il reste de la durabilité à l'item qui répare
            if(armor.getItemDamage() > 0 && stack.getItemDamage() < stack.getMaxDamage())
            {
            stack.setItemDamage(stack.getItemDamage() + 1); //On enlève de la durabilité à l'item qui répare
            armor.setItemDamage(armor.getItemDamage() - 1); //On rajoute de la durabilité à la pièce d'armure
            }
            }
            }
            }
            }
            
            

            Et pense à mettre :

            
            this.setMaxDamage(le nombre que tu veux);
            
            

            Dans le constructeur

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

              Lis bien ton code bodri, quand tu dis que tu enlèves de la durabilité tu mets +1 et vice-versa. De plus dans ta condition, tu as inversé le nom des variables, elle devrait plutôt être comme ça :

              
              //Vérifie qu'on répare pas un item entièrement réparé et qu'il reste de la durabilité à l'item qui répare
              if(stack.getItemDamage() > 0 && armor.getItemDamage() < armor.getMaxDamage())
              {
              stack.setItemDamage(stack.getItemDamage() - 1); //On enlève de la durabilité à l'item qui répare
              armor.setItemDamage(armor.getItemDamage() +1); //On rajoute de la durabilité à la pièce d'armure
              }
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • M Hors-ligne
                mosca421
                dernière édition par

                Et il y moyen de faire que je puisse réparer avec un item lui rendre 50 dura par item

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

                  Tu veux dire rendre instantanément après clic droit, 50 de dura à l’armure ?
                  Si oui, tout se passe dans la méthode onItemRightClick et c’est quasiment le même code qu’on t’a donné 😃

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

                    Non je veux dire que mettre un ingot plus l’anneau dans la table de craft = donné 50 dura a l’anneau en plus

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

                      Regarde les crafts de minecraft avec l’armure et les outils

                      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
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs
                        dernière édition par

                        @‘Julot10085’:

                        Lis bien ton code bodri, quand tu dis que tu enlèves de la durabilité tu mets +1 et vice-versa. De plus dans ta condition, tu as inversé le nom des variables, elle devrait plutôt être comme ça :

                        
                        //Vérifie qu'on répare pas un item entièrement réparé et qu'il reste de la durabilité à l'item qui répare
                        if(stack.getItemDamage() > 0 && armor.getItemDamage() < armor.getMaxDamage())
                        {
                        stack.setItemDamage(stack.getItemDamage() - 1); //On enlève de la durabilité à l'item qui répare
                        armor.setItemDamage(armor.getItemDamage() +1); //On rajoute de la durabilité à la pièce d'armure
                        }
                        
                        

                        Tu t’es embrouillé, mon code était bon (je l’avais testé), quand on fait ```java
                        stack.setItemDamage(stack.getItemDamage() + 1);

                        Effectivement on exprime la durabilité de cette façon :
                        ```java
                        int durability = stack.getMaxDamage() - stack.getItemDamage();
                        

                        Ainsi en ajout 1 à itemDamage on enlève 1 à la durabilité.
                        J’espère que tu as compris.

                        Même raisonnement pour la condition, imagine l’item qui répare a pour itemDamageMax 100 et pour itemDamage 100 aussi, alors sa durabilité sera égale à 100 - 100 = 0 (0 de durabilité on ne devrait pas pouvoir réparer), cependant 100 > 0 donc ton code dirait que l’on peut réparer.

                        Tout ça pour dire qu’il ne faut confondre durabilité et damageValue.

                        –-----------------------------------------------------------------------------------------

                        Quand à l’histoire de rajouter de la durabilité on craftant il faut que tu passe par une implémentation de IRecipe, regard dans la classe se trouvant dans net.minecraft.item.crafting.RecipeRepairItem et il y a un tuto sur MFF qui explique comment créer un implémentation de IRecipe

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

                          A ok autant pour moi, tu m’apprends quelque chose 😃

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

                            Alors j’ai chercher un peu mais je ne trouve pas comment réparer mon item dans l’inventaire grâce a un lingot donc si jamais quelqu’un connais la classe de minecraft qui gère ça je prendrais bien
                            Merci !

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

                              Si c’est en craft :
                              @‘SCAREX’:

                              Regarde les crafts de minecraft avec l’armure et les outils

                              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
                              • M Hors-ligne
                                mosca421
                                dernière édition par

                                Si c’est en craft :

                                Je me doute mais où qu’on le trouve car je me balade dans net.minecraft.item.crafting mais je ne vois pas où

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

                                  Effectivement minecraft fait ces crafts directement dans le CraftingManager, mais tu peux utiliser le tutoriel sur le forum pour faire un IRecipe custom

                                  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
                                  • M Hors-ligne
                                    mosca421
                                    dernière édition par

                                    Voila Voila J’ai le Irecipe ça marche Merci =p

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

                                      tu peux me donner le code en entier avec la durabilité a definir stp

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

                                        Évite de remonter des si anciens sujets 😉

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

                                          Et toi évite quand tu ajoutes un message de citer 3 ou 4 autres messages aussi longs que ça 😉
                                          Et si tu as du mal avec un post aussi vieux (effectivement) @MLNGamer, recrée un nouveau topic à la place de déterrer 😃

                                          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