MFF

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

    Armure qui te passe en créatif

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    3 Messages 3 Publieurs 252 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.
    • D Hors-ligne
      Drastic
      dernière édition par

      Bonjour !
      j’aimerais que quand le joueur porte mon casque, il passe en créatif.
      Voici mon code mais il ne vas pas

      package com.drastic.mod.init.objects.armour;
      
      import com.drastic.mod.Main;
      import com.drastic.mod.init.ItemInit;
      import com.drastic.mod.render.models.armor.ModelGbHead;
      import com.drastic.mod.util.IHasModel;
      
      import net.minecraft.client.model.ModelBiped;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.inventory.EntityEquipmentSlot;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      import net.minecraftforge.common.util.ITeleporter;
      
      public class GbArmor extends ItemArmor implements IHasModel
      {
      
          public GbArmor(String name, ArmorMaterial materialIn, EntityEquipmentSlot equipmentSlotIn)
          {
              super(materialIn, 1, equipmentSlotIn);
              setUnlocalizedName(name);
              setRegistryName(name);
              setCreativeTab(Main.BadassTab);
              setMaxStackSize(1);
              
              ItemInit.ITEMS.add(this);
          }
      
          @Override
          public void registerModels()
          {
              Main.proxy.registerItemRederer(this, 0);        
          }
          
          @Override
          public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default)
          {
              if(itemStack != ItemStack.EMPTY && itemStack.getItem() instanceof ItemArmor)
              {
                  ModelGbHead model = new ModelGbHead();
                  
                  model.bipedHead.showModel = armorSlot == EntityEquipmentSlot.HEAD;
                  
                  model.isChild = _default.isChild;
                  model.isRiding = _default.isRiding;
                  model.isSneak = _default.isSneak;
                  model.rightArmPose = _default.rightArmPose;
                  model.leftArmPose = _default.leftArmPose;    
                  
                  return model;
              }
              
              return null;
          }
          
          @Override
          public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
          {
              if(isFullSet(player)) 
              {
                  player.capabilities.isCreativeMode = true;
              }
              else
              {
                  player.capabilities.isCreativeMode = false;
              }
              super.onArmorTick(world, player, itemStack);
          }
          
          
          public static boolean isFullSet(EntityPlayer player){       
              ItemStack head = player.getItemStackFromSlot(EntityEquipmentSlot.HEAD);
              
              return !head.isEmpty() && head.getItem() instanceof GbArmor;
          }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • En0ri4nE Hors-ligne
        En0ri4n
        dernière édition par

        Bonjour :D,
        il faut rajouter cette méthode dans la classe qui a pour effet de ticker en permanence dès que l’on porte un morceau de l’armure pusi ensuite de faire les checks nécessaires :

        @Override
        	public void onArmorTick(World world, EntityPlayer player, ItemStack item)
        	{
        		if(player.inventory.armorItemInSlot(0) != null)
        			if(player.inventory.armorItemInSlot(0).getItem() == TON_CASQUE )
                                       if(!player.capabilities.isInCreative)
                                       {
                                                 player.setGameType(EnumGameType.CREATIVE)
                                       }
        	}
        

        Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

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

          Bonjour,

          Si un event qui ne se déclenche que lors d’un changement d’armure existe, il serait bon de le favoriser sinon les deux premiers if du code proposé par Eno_gamer10 seront testés à tous les ticks (donc niveau optimisation ce ne serait pas ouf)

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

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB