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

    Résolu Item qui rend de la durabilité

    1.7.x
    1.7.10
    7
    19
    3393
    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
      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
      • robin4002
        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
          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
          • BrokenSwing
            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
            • Deleted
              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
                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
                • Deleted
                  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
                    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
                    • SCAREX
                      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
                      • BrokenSwing
                        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
                        • Deleted
                          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
                            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
                            • SCAREX
                              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
                                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
                                • SCAREX
                                  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
                                    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
                                      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
                                        Loko_Liveh dernière édition par

                                        Évite de remonter des si anciens sujets 😉

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Deleted
                                          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
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB