MFF

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

    Condition pour Armure

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    11 Messages 5 Publieurs 1.7k 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.
    • A Hors-ligne
      AzeFire
      dernière édition par

      Bonjour, je suis en train de finaliser mon mod minecraft.
      il ne me manque plus qu’une seule chose pour achever celui-ci :

      j’aimerais, activer un effet de potion non quant on porte une partie de l’armure, mais l’armure complete.

      je m’explique : imaginons que je crée une armure en obsidienne, j’aimerais que seulement quand je m’equipe des 4 slots de l’armure l’effet soit activé.
      il ne serait pas actif si je possede sur moi uniquement le casque et le pantalon par exemple.  Il faut que je m’équipe du casque en obsidienne, du plastron en obsidienne, du pantalon en obsidienne et des bottes en obsidienne pour que l’effet soit activé.

      je suis “débutant” en java, j’ai donc essayé par moi meme et avec quelques connaissances de faire cette fameuse condition (j’ai pris l’exemple de la nightvison pour l’effet donné une fois la condition respectée) :

      
      public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
          {
              if((this.armorType == 0 && this == ItemMod.obsidienne_helmet) && (this.armorType == 1 && this == ItemMod.obsidienne_chestplate) && (this.armorType == 2 && this == ItemMod.obsidienne_leggings) && (this.armorType == 3 && this == ItemMod.obsidienne_boots))
              {
                  player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 60, 1));            
              }
          }
      
      

      Mais le probleme, c’est que cette derniere ne marche pas, quand j’equipe mon armure en obsidienne, rien ne se passe…
      Apres de nombreuses heures de recherche, je n’ai rien trouvé sur internet, donc je fais appelle à vous pour m’aider.
      J’espere vous avoir donné les détails suffisant pour que vous puissiez me repondre ^^
      Sur ce Bonne journée a tous 🙂

      Cordialement, AzeFire

      1 réponse Dernière réponse Répondre Citer 0
      • Benjamin LoisonB Hors-ligne
        Benjamin Loison
        dernière édition par

        Salut à toi le nouveau ! 🙂

        C’est mignon ^^

        if((this.armorType == 0 && this == ItemMod.obsidienne_helmet) && (this.armorType == 1 && this == ItemMod.obsidienne_chestplate) && (this.armorType == 2 && this == ItemMod.obsidienne_leggings) && (this.armorType == 3 && this == ItemMod.obsidienne_boots))
        {
        player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 60, 1));
        }
        

        Tu as compris le principe seulement essayes de regarder ton code avec une vision extérieure.

        La condition n’arrive pas à être vérifiée:

        if((this.armorType == 0 && this == ItemMod.obsidienne_helmet) && (this.armorType == 1 && this == ItemMod.obsidienne_chestplate) && (this.armorType == 2 && this == ItemMod.obsidienne_leggings) && (this.armorType == 3 && this == ItemMod.obsidienne_boots))
        

        this.armorType == 0 && this.armorType == 1, comment tu veux qu’un nombre soit en même temps égal à 0 et à 1 ? ^^

        Si j’étais toi je ferai comme ceci:

        if(player.inventory.armorInventory[0] != null && player.inventory.armorInventory[1] != null && player.inventory.armorInventory[2] != null && player.inventory.armorInventory[3] != null) // Si tout ces slots d'armure sont remplies
        {
        if(player.inventory.armorInventory[0].getItem().equals(ItemMod.obsidienne_helmet && player.inventory.armorInventory[1].getItem().equals(ItemMod.obsidienne_chestplate && player.inventory.armorInventory[2].getItem().equals(ItemMod.obsidienne_leggings && player.inventory.armorInventory[3].getItem().equals(ItemMod.obsidienne_boots)) // Si tout ces slots comprennent bien ta bonne armure d'obsidienne
        {
        player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 60, 1)); // Alors on donne l'effet :)
        }
        }
        

        Cependant cette fonction onArmorTick ets peut-être appelé trop de fois et dans ce cas agit en conséquences sur les paramètres de ton effet 😉

        Salut !

        >! Développeur de Altis-Life (Arma III) sur Minecraft !
        >! Site web     : https://lemnoslife.com

        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,

          C’est vraiment désespérant de voir une nouvelle demande d’aide concernant une question qui a déjà été demandé et répondu au moins 5 fois et qui en plus la réponse se trouve dans le bonus du tutoriel sur les armures.

          https://www.minecraftforgefrance.fr/showthread.php?tid=674#bonus2

          Mais bienvenue quand même sur le forum !

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

            Merci beaucoup pour vos réponses ^^
            Malheureusement je n’arrive toujours pas faire se que je voudrais…

            j’ai suivi le tutoriel qu’a fait robin4002 mais je n’arrive pas à ajouter l’effet…

            je vous ai mis le screenshot

            0_1537564299847_image.png

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

              Il faudrait peut-être créer ta variable player, nan ?

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

                Merci ^^

                Et maintenant ? x)

                0_1537564497674_image2.png

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

                  @‘AzeFire’:

                  Merci ^^

                  Et maintenant ? x)

                  Tu veux que ce soit l’entité qui reçoit l’effet donc tu met “event.entityLiving” à la place de “player”

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

                    Cela ne marche toujours pas…

                    Ca fait depuis ce matin que j’essaye de faire marcher mon event…

                    0_1536505401120_image3.png

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

                      @‘AzeFire’:

                      Cela ne marche toujours pas…

                      Ca fait depuis ce matin que j’essaye de faire marcher mon event…

                      As-tu bien enregistré ta class d’event ? Et as-tu essayé avec d’autres valeurs pour l’effet de potion (comme 60 et 1, comme c’était au début   ?)

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

                        oui, ma classe d’event est bien enregistrer, j’ai suivi le tuto que robin4002 a fait concernant les armures, mais je n’arrive pas a ajouter d’effet au joueur quand l’armure complete est equipée…

                        j’ai chnagé les valeurs mais rien ne change…

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

                          @‘AzeFire’:

                          oui, ma classe d’event est bien enregistrer, j’ai suivi le tuto que robin4002 a fait concernant les armures, mais je n’arrive pas a ajouter d’effet au joueur quand l’armure complete est equipée…

                          j’ai chnagé les valeurs mais rien ne change…

                          A oui, c’est normal, tu as utilisé l’event “LivingHurtEvent” qui se déclanche qand une entité prend des dégâts Il te faut plutôt “LivingUpdateEvent” comme ça, tous les ticks, si le joueur a l’armure, il aura l’effet.

                          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