MFF

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

    Player + Armure invisible

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

      Bonjour ! Encore moi. Voilà, j’ai ajouté une fonction à mon armure pour que quand on sneak on devient invisible.
      Cependant si on est invisible et que l’on voit notre armure, ce n’est pas très utile 😕 Donc je voudrais savoir si c’était possible de rendre l’armure également invisible !

      Class de l’armure :

      :::

      ​package com.heartshadow.mod.armors;
      
      import com.heartshadow.mod.HSMOD;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemStack;
      import net.minecraft.potion.Potion;
      import net.minecraft.potion.PotionEffect;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class ItemProtoArmor extends ItemArmor
      {
      
          public ItemProtoArmor(ArmorMaterial material_, int type)
          {
              super(material_, 0, type);
          }   
      
          public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
          {
              if(slot == 2)
              {
                  return HSMOD.MODID + ":textures/models/armor/proto_layer_2.png";
              }
              return HSMOD.MODID + ":textures/models/armor/proto_layer_1.png";
          }
      
          public boolean getIsRepairable(ItemStack input, ItemStack repair)
          {
              if(repair.getItem() == HSMOD.protoIngot)
              {
                  return true;
              }
              return false;
          }
      
          public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
          {
              player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 1200, 3));
      
              if(this.armorType == 0 && world.getBlockLightValue(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ)) < 8)
              {
                  player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 1200, 0));
              }
      
              if(this.armorType == 2 && player.isSprinting() && player.onGround)
              {
                  player.motionX *= 1.2F;
                  player.motionZ *= 1.2F;
              }
              if(this.armorType == 3 && player.isSneaking() && player.onGround)
              {
                  player.addPotionEffect(new PotionEffect(Potion.invisibility.getId(), 200, 0));
              }
          }
      }
      

      :::

      Voilà merci 🙂

      Touches à mes amis et tu me verras comme ça !

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

        Regarde du côté de l’événement RenderPlayerEvent.SetArmorModel

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

          Dans la fonction
          public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
          tu as l’entité en paramètre.
          Il tu suffit de vérifier que entity instanceof EntityLivingBase et depuis EntityLivingBase tu peux savoir si une entité a un effet de potion
          ((EntityLivingBase)entity).hasPotionEffect(Potion.nightVision.getId()) il me semble) et si c’est le cas tu renvois sur une texture qui n’est que composé d’une couche alpha.

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

            Okay … Je vais regarder puis-je vous proposez ma class si je n’y arrive pas ?

            Touches à mes amis et tu me verras comme ça !

            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

              @‘VhakeFX’:

              puis-je vous proposez ma class si je n’y arrive pas ?

              Comment ça ? J’ai pas compris.

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

                Je suis vraiment pas doué avec ce que tu as dit donc j’aimerais une petite précision, pas le code entier.

                Ps: je débute désolé ;/

                Touches à mes amis et tu me verras comme ça !

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

                  Tu regardes si le joueur a la potion d’invisibilité et si c’est le cas, tu retournes un fichier vide (le fichier doit exister mais doit être vide).

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

                    Je suis vraiment désolé, mais j’y arrive pas x( Se met en position fœtale sur sa chaise Ne me tapez pas s’il vous plait 😢

                    Touches à mes amis et tu me verras comme ça !

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

                      Qu’est-ce que tu ne comprends pas ?

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

                        public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                        {
                        if(entity instanceof EntityLivingBase && ((EntityLivingBase)entity).hasPotionEffect(Potion.nightVision.getId())
                        {
                        return HSMOD.MODID + ":textures/models/armor/proto_invisible.png";
                        }
                        if(slot == 2)
                        {
                        return HSMOD.MODID + ":textures/models/armor/proto_layer_2.png";
                        }
                        return HSMOD.MODID + ":textures/models/armor/proto_layer_1.png";
                        }
                        

                        Ensuite dans le dossier armor tu ajoutes un fichier nommé proto_invisible.png qui fait la même taille que proto_layer_1 et proto_layer_2 (64 en largeur, 32 en hauteur de mémoire, je ne suis pas sûr) entièrement transparent.

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

                          J’étais sur la bonne voie mais j’ai pas fusionné entity instanceof et le reste x/*

                          EDIT : J’ai une erreur sur hasPotionEffect :

                          Touches à mes amis et tu me verras comme ça !

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

                            Bonsoir, je me permet de up !

                            PS : Désolé si c’est double post, mais je ne savais pas si j’éditer mon message précédent ça marcherait 😉

                            Touches à mes amis et tu me verras comme ça !

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

                              Essaie de le cast à EntityPlayer.

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

                                Il me semblait que cette fonction était dans EntityLivingBase.
                                Mais visiblement non.
                                Du-coup fait comme ça :
                                if(entity instanceof EntityPlayer && ((EntityPlayer )entity).hasPotionEffect(Potion.nightVision.getId())

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

                                  Non toujours la même erreur.

                                  Voici la class :

                                  ​package com.heartshadow.mod.armors;
                                  
                                  import com.heartshadow.mod.HSMOD;
                                  
                                  import cpw.mods.fml.relauncher.Side;
                                  import cpw.mods.fml.relauncher.SideOnly;
                                  import net.minecraft.entity.Entity;
                                  import net.minecraft.entity.EntityLivingBase;
                                  import net.minecraft.entity.player.EntityPlayer;
                                  import net.minecraft.item.ItemArmor;
                                  import net.minecraft.item.ItemStack;
                                  import net.minecraft.potion.Potion;
                                  import net.minecraft.potion.PotionEffect;
                                  import net.minecraft.util.MathHelper;
                                  import net.minecraft.world.World;
                                  
                                  public class ItemProtoArmor extends ItemArmor
                                  {
                                  
                                      public ItemProtoArmor(ArmorMaterial material_, int type)
                                      {
                                          super(material_, 0, type);
                                      }   
                                  
                                      public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                                      {
                                          if(entity instanceof EntityPlayer && ((EntityPlayer)entity).hasPotionEffect(Potion.nightVision.getId()));
                                          {
                                              return HSMOD.MODID + ":textures/models/armor/proto_invisible.png";
                                          }
                                          if(slot == 2)
                                          {
                                              return HSMOD.MODID + ":textures/models/armor/proto_layer_2.png";
                                          }
                                          return HSMOD.MODID + ":textures/models/armor/proto_layer_1.png";
                                      }
                                  
                                      public boolean getIsRepairable(ItemStack input, ItemStack repair)
                                      {
                                          if(repair.getItem() == HSMOD.protoIngot)
                                          {
                                              return true;
                                          }
                                          return false;
                                      }
                                  
                                      public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
                                      {        
                                          if(this.armorType == 0 && world.getBlockLightValue(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ)) < 8)
                                          {
                                              player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 1200, 0));
                                          }
                                  
                                          if(this.armorType == 2 && player.isSprinting() && player.onGround)
                                          {
                                              player.motionX *= 1.3F;
                                              player.motionZ *= 1.3F;
                                          }
                                          if(this.armorType == 3 && player.isSneaking() && player.onGround)
                                          {
                                              player.addPotionEffect(new PotionEffect(Potion.invisibility.getId(), 200, 0));
                                          }
                                          if(this.armorType == 1 && player.isBurning())
                                          {
                                              player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 1200, 3));
                                          }
                                      }
                                  
                                      @SideOnly(Side.CLIENT)
                                      public boolean hasEffect(ItemStack par1ItemStack)
                                      {
                                          return true;
                                      }
                                  }
                                  
                                  

                                  Touches à mes amis et tu me verras comme ça !

                                  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

                                    Au pire getActivePotionEffect().contains(Potion.nightVision) ou getActivePotionEffect().contains(Potion.nightVision.getId())

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

                                      Je remplace le hasPotionEffect par le getActivePotionEffect ?

                                      Touches à mes amis et tu me verras comme ça !

                                      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

                                        Oui.

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

                                          Toujours la même erreur 😕

                                          Touches à mes amis et tu me verras comme ça !

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

                                            Laquelle ?

                                            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
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB