MFF

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

    Animation d'un mob !

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    20 Messages 4 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.
    • K Hors-ligne
      Kriksou
      dernière édition par

      Alors,
      Voici la classe de mon mob :
      :::

      package Entity;
      
      import javax.swing.text.html.parser.Entity;
      
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.SharedMonsterAttributes;
      import net.minecraft.entity.ai.EntityAIAttackOnCollide;
      import net.minecraft.entity.ai.EntityAILookIdle;
      import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
      import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
      import net.minecraft.entity.ai.EntityAISwimming;
      import net.minecraft.entity.ai.EntityAIWander;
      import net.minecraft.entity.ai.EntityAIWatchClosest;
      import net.minecraft.entity.ai.EntityMoveHelper;
      import net.minecraft.entity.monster.EntityEnderman;
      import net.minecraft.entity.monster.EntityIronGolem;
      import net.minecraft.entity.monster.EntityMob;
      import net.minecraft.entity.monster.EntitySkeleton;
      import net.minecraft.entity.monster.EntityZombie;
      import net.minecraft.entity.monster.IMob;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.pathfinding.PathNavigateGround;
      import net.minecraft.util.DamageSource;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class MonMob1 extends EntityMob
      {
          public MonMob1(World worldIn)
          {
              super(worldIn);
              ((PathNavigateGround)this.getNavigator()).func_179688_b(true);
              this.tasks.addTask(0, new EntityAISwimming(this));
              this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 0.3D,false));
              this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityEnderman.class, 0.3D, false));
              this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityZombie.class, 0.3D, false));
              this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntitySkeleton.class, 0.3D, false));
              this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityMob.class, 0.3D, false));
              this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 0.3D));
              this.tasks.addTask(7, new EntityAIWander(this, 0.3D));
              this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
              this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, false));
              this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityMob.class, false));
              this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityEnderman.class, false));
      
          }
      
          public void applyEntityAttributes1()
          {
              super.applyEntityAttributes();
              this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40D);
              this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(20D);
              this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(10D);
              this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.3);
              this.worldObj.spawnEntityInWorld( attackingPlayer );
              this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin));
          }
      
          protected void addRandomArmor()
          {
              switch (this.rand.nextInt(3))
              {
                  case 0:
                      this.dropItem(Items.iron_ingot, 1);
                      break;
                  case 1:
                      this.dropItem(Items.carrot, 1);
                      break;
                  case 2:
                      this.dropItem(Items.potato, 1);
      }
          }
      
          protected Item getDropItem()
          {
              return Items.boat;
          }
      
          public boolean attackEntityFrom(DamageSource source, float amount)
          {
              if (super.attackEntityFrom(source, amount))
              {
                  EntityLivingBase entitylivingbase = this.getAttackTarget();
      
                  if (entitylivingbase == null && source.getEntity() instanceof EntityLivingBase)
                  {
                      entitylivingbase = (EntityLivingBase)source.getEntity();
                  }
      
                  int i = MathHelper.floor_double(this.posX);
                  int j = MathHelper.floor_double(this.posY);
                  int k = MathHelper.floor_double(this.posZ);
                  }
              return isDead;
          } 
      

      :::

      Et ma classe Render :
      :::

      package Entity;
      
      import com.mod2.Reference;
      
      import net.minecraft.client.model.ModelBiped;
      import net.minecraft.client.renderer.entity.RenderBiped;
      import net.minecraft.client.renderer.entity.RenderManager;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.EnumCreatureAttribute;
      import net.minecraft.util.MathHelper;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class RenderMod2 extends RenderBiped
      {
      
          public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/MonMobl.png");
          public RenderMod2(RenderManager rendermanager, ModelBiped model, float shadow)
          {
              super (rendermanager, model, shadow);
              // TODO Auto-generated constructor stub
          }
      
          protected ResourceLocation getEntityTexture(EntityLiving living)
          {
              return this.getMobTutorielTexture((MonMob1)living);
          }
      
          private ResourceLocation getMobTutorielTexture(MonMob1 mobTutoriel)
          {
              return texture;
          }
          public int getMaxHealth()
          {
              return 100;
          }
      
          public int getAttackStrength(Entity par1Entity)
          {
          return 10;
          }
      
          public EnumCreatureAttribute getCreatureAttribute()
          {
              return EnumCreatureAttribute.UNDEFINED;
          }
      
          @SideOnly(Side.CLIENT)
          public class ModelMonMob1 extends ModelBiped
          {
              private static final String __OBFID = "CL_00000869";
      
              public ModelMonMob1()
              {
                  this(0.0F, false);
              }
      
              protected ModelMonMob1(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
              {
                  super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
              }
      
              public ModelMonMob1(float p_i1168_1_, boolean p_i1168_2_)
              {
                  super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
              }
      }
      
      

      :::

      Alors j’ai essaye 2 choses :
      Mettre les valeurs de rotations dans une nouvelle que que j’ai cree et appele ModelMonMob1 /MarchePas
      Mettre les valeurs de rotations dans la classes Render /MarchePas 
      Merci de ton aide^^

      EDIT : Euh j’ai pris comme model le zombie pour comprendre comment crée un mob par la suite je compte faire un Dieu sur un nuage^^ Du coups et bien sa sera un truc avec pas mal d’animation mais je sais pour l’instant meme pas comment intégrer des models autres que ceux de minecratf comment un loups géants ou un yeti j’imagine que je dois passer par modelbase puis integrer mon mob sous forme de code comme pour un item fais sous Mcreator je me trompe ?

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

        @‘Kriksou’:

        Alors,
        Voici la classe de mon mob :
        :::

        package Entity;
        
        import javax.swing.text.html.parser.Entity;
        
        import net.minecraft.entity.EntityLiving;
        import net.minecraft.entity.EntityLivingBase;
        import net.minecraft.entity.SharedMonsterAttributes;
        import net.minecraft.entity.ai.EntityAIAttackOnCollide;
        import net.minecraft.entity.ai.EntityAILookIdle;
        import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
        import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
        import net.minecraft.entity.ai.EntityAISwimming;
        import net.minecraft.entity.ai.EntityAIWander;
        import net.minecraft.entity.ai.EntityAIWatchClosest;
        import net.minecraft.entity.ai.EntityMoveHelper;
        import net.minecraft.entity.monster.EntityEnderman;
        import net.minecraft.entity.monster.EntityIronGolem;
        import net.minecraft.entity.monster.EntityMob;
        import net.minecraft.entity.monster.EntitySkeleton;
        import net.minecraft.entity.monster.EntityZombie;
        import net.minecraft.entity.monster.IMob;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.init.Blocks;
        import net.minecraft.init.Items;
        import net.minecraft.item.Item;
        import net.minecraft.item.ItemStack;
        import net.minecraft.pathfinding.PathNavigateGround;
        import net.minecraft.util.DamageSource;
        import net.minecraft.util.MathHelper;
        import net.minecraft.world.World;
        
        public class MonMob1 extends EntityMob
        {
            public MonMob1(World worldIn)
            {
                super(worldIn);
                ((PathNavigateGround)this.getNavigator()).func_179688_b(true);
                this.tasks.addTask(0, new EntityAISwimming(this));
                this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 0.3D,false));
                this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityEnderman.class, 0.3D, false));
                this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityZombie.class, 0.3D, false));
                this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntitySkeleton.class, 0.3D, false));
                this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityMob.class, 0.3D, false));
                this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 0.3D));
                this.tasks.addTask(7, new EntityAIWander(this, 0.3D));
                this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
                this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, false));
                this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityMob.class, false));
                this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityEnderman.class, false));
                
               
            }
            
            
            public void applyEntityAttributes1()
            {
                super.applyEntityAttributes();
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40D);
                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(20D);
                this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(10D);
                this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.3);
                this.worldObj.spawnEntityInWorld( attackingPlayer );
                this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin));
            }
                
            
            protected void addRandomArmor()
            {
                switch (this.rand.nextInt(3))
                {
                    case 0:
                        this.dropItem(Items.iron_ingot, 1);
                        break;
                    case 1:
                        this.dropItem(Items.carrot, 1);
                        break;
                    case 2:
                        this.dropItem(Items.potato, 1);
        }
            }
            
            protected Item getDropItem()
            {
                return Items.boat;
            }
        
            public boolean attackEntityFrom(DamageSource source, float amount)
            {
                if (super.attackEntityFrom(source, amount))
                {
                    EntityLivingBase entitylivingbase = this.getAttackTarget();
        
                    if (entitylivingbase == null && source.getEntity() instanceof EntityLivingBase)
                    {
                        entitylivingbase = (EntityLivingBase)source.getEntity();
                    }
        
                    int i = MathHelper.floor_double(this.posX);
                    int j = MathHelper.floor_double(this.posY);
                    int k = MathHelper.floor_double(this.posZ);
                    }
                return isDead;
            } 
        

        :::

        Et ma classe Render :
        :::

        package Entity;
        
        import com.mod2.Reference;
        
        import net.minecraft.client.model.ModelBiped;
        import net.minecraft.client.renderer.entity.RenderBiped;
        import net.minecraft.client.renderer.entity.RenderManager;
        import net.minecraft.entity.Entity;
        import net.minecraft.entity.EntityLiving;
        import net.minecraft.entity.EnumCreatureAttribute;
        import net.minecraft.util.MathHelper;
        import net.minecraft.util.ResourceLocation;
        import net.minecraftforge.fml.relauncher.Side;
        import net.minecraftforge.fml.relauncher.SideOnly;
        
        public class RenderMod2 extends RenderBiped
        {
        
            public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/MonMobl.png");
            public RenderMod2(RenderManager rendermanager, ModelBiped model, float shadow)
            {
                super (rendermanager, model, shadow);
                // TODO Auto-generated constructor stub
            }
        
            protected ResourceLocation getEntityTexture(EntityLiving living)
            {
                return this.getMobTutorielTexture((MonMob1)living);
            }
        
            private ResourceLocation getMobTutorielTexture(MonMob1 mobTutoriel)
            {
                return texture;
            }
            public int getMaxHealth()
            {
                return 100;
            }
         
            public int getAttackStrength(Entity par1Entity)
            {
            return 10;
            }
         
         
            public EnumCreatureAttribute getCreatureAttribute()
            {
                return EnumCreatureAttribute.UNDEFINED;
            }
             
            
            @SideOnly(Side.CLIENT)
            public class ModelMonMob1 extends ModelBiped
            {
                private static final String __OBFID = "CL_00000869";
        
                public ModelMonMob1()
                {
                    this(0.0F, false);
                }
        
                protected ModelMonMob1(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
                {
                    super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
                }
        
                public ModelMonMob1(float p_i1168_1_, boolean p_i1168_2_)
                {
                    super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
                }
        }
        
        

        :::

        Alors j’ai essaye 2 choses :
        Mettre les valeurs de rotations dans une nouvelle que que j’ai cree et appele ModelMonMob1 /MarchePas
        Mettre les valeurs de rotations dans la classes Render /MarchePas 
        Merci de ton aide^^

        Déja enlève cette ligne dans le Render sinon tu auras des erreurs dans la compilation de ton mod.

        private static final String __OBFID = "CL_00000869";
        

        Ton mob doit être le même que le zombie , je suppose que tu va changer la texure après ?

        C’est déjà bizarre que ton mob n’est pas animé si tu a importer les classes …

        EDIT : Voila la classe du Model du zombie

        public class ModelZombie extends ModelBiped
        {
            private static final String __OBFID = "CL_00000869";
        
            public ModelZombie()
            {
                this(0.0F, false);
            }
        
            protected ModelZombie(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
            {
                super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
            }
        
            public ModelZombie(float p_i1168_1_, boolean p_i1168_2_)
            {
                super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
            }
        
            /**
             * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
             * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
             * "far" arms and legs can swing at most.
             */
            public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
            {
                super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, p_78087_7_);
                float f6 = MathHelper.sin(this.onGround * (float)Math.PI);
                float f7 = MathHelper.sin((1.0F - (1.0F - this.onGround) * (1.0F - this.onGround)) * (float)Math.PI);
                this.bipedRightArm.rotateAngleZ = 0.0F;
                this.bipedLeftArm.rotateAngleZ = 0.0F;
                this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F);
                this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F;
                this.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F);
                this.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F);
                this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
            }
        }
        

        Change par le nom de ton mob ModelMob1 et ensuite change dans ta classe tout les ModelZombie

        Oui ce gif est drôle.

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

          J’imagine que tu n’as pas vu l’edit^^ Euh mon mob bouge ,ils bougent ses bras en marchant, ils bougent ses pieds en marchants mais je voudrai une animation d’attaque peut être me suis je mal exprimer dans mon post^^
          EDIT :
          Voici ma classe Render au complet tous en bas se trouve se que je pense être les rotations des bras pour l’attaque et aussi mon mob a tendense a marcher en diagonale et attaquer en diagonale aussi 
          :::

          package Entity;
          
          import com.mod2.Reference;
          
          import net.minecraft.client.model.ModelBiped;
          import net.minecraft.client.renderer.entity.RenderBiped;
          import net.minecraft.client.renderer.entity.RenderManager;
          import net.minecraft.entity.Entity;
          import net.minecraft.entity.EntityLiving;
          import net.minecraft.entity.EnumCreatureAttribute;
          import net.minecraft.util.MathHelper;
          import net.minecraft.util.ResourceLocation;
          import net.minecraftforge.fml.relauncher.Side;
          import net.minecraftforge.fml.relauncher.SideOnly;
          
          public class RenderMod2 extends RenderBiped
          {
          
              public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/MonMobl.png");
              public RenderMod2(RenderManager rendermanager, ModelBiped model, float shadow)
              {
                  super (rendermanager, model, shadow);
                  // TODO Auto-generated constructor stub
              }
          
              protected ResourceLocation getEntityTexture(EntityLiving living)
              {
                  return this.getMobTutorielTexture((MonMob1)living);
              }
          
              private ResourceLocation getMobTutorielTexture(MonMob1 mobTutoriel)
              {
                  return texture;
              }
              public int getMaxHealth()
              {
                  return 100;
              }
          
              public int getAttackStrength(Entity par1Entity)
              {
              return 10;
              }
          
              public EnumCreatureAttribute getCreatureAttribute()
              {
                  return EnumCreatureAttribute.UNDEFINED;
              }
          
              @SideOnly(Side.CLIENT)
              public class ModelMonMob1 extends ModelBiped
              {
          
                  public ModelMonMob1()
                  {
                      this(0.0F, false);
                  }
          
                  protected ModelMonMob1(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
                  {
                      super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
                  }
          
                  public ModelMonMob1(float p_i1168_1_, boolean p_i1168_2_)
                  {
                      super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
                  }
          
                  public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
                  {
                      super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, p_78087_7_);
                      float f6 = MathHelper.sin(this.swingProgress * (float)Math.PI);
                      float f7 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * (float)Math.PI);
                      this.bipedRightArm.rotateAngleZ = 0.0F;
                      this.bipedLeftArm.rotateAngleZ = 0.0F;
                      this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F);
                      this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F;
                      this.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F);
                      this.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F);
                      this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                      this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                      this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                      this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                      this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                      this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                  }
              }
          }
          
          

          :::

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

            Effectivement j’avais pas compris

            du coup créer une classe ModelMonMob1

            [font=Ubuntu, sans-serifVoila la classe du Model du zombie]

            Code :

            public class ModelZombie extends ModelBiped
            {
                private static final String __OBFID = "CL_00000869";
            
                public ModelZombie()
                {
                    this(0.0F, false);
                }
            
                protected ModelZombie(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
                {
                    super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
                }
            
                public ModelZombie(float p_i1168_1_, boolean p_i1168_2_)
                {
                    super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
                }
            
                /**
                 * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
                 * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
                 * "far" arms and legs can swing at most.
                 */
                public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
                {
                    super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, p_78087_7_);
                    float f6 = MathHelper.sin(this.onGround * (float)Math.PI);
                    float f7 = MathHelper.sin((1.0F - (1.0F - this.onGround) * (1.0F - this.onGround)) * (float)Math.PI);
                    this.bipedRightArm.rotateAngleZ = 0.0F;
                    this.bipedLeftArm.rotateAngleZ = 0.0F;
                    this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F);
                    this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F;
                    this.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F);
                    this.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F);
                    this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                    this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                    this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                    this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                    this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                    this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                }
            }
            

            [font=Ubuntu, sans-serifChange par le nom de ton mob ModelMob1 et ensuite change dans ta classe tout les ModelZombie]

            [font=Ubuntu, sans-serifQuand tu a fais ca dis moi :)]

            Oui ce gif est drôle.

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

              je l’avais fait^^
              Mot pour mot ce que tu as dis^^ 
              Mais sa n’avais pas marcher pour ça que je t’ai demande ou enregistrer la classe model pour qu’elle soit reconu

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

                Bah dans tes deux classes Entity et Render lorsque tu vois ModelZombie tu remplace par ModelMonMob …

                Oui ce gif est drôle.

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

                  Je n’ai marque nul part ModelZombie
                  Voici la classe principale de mon mob :
                  :::

                  package Entity;
                  
                  import javax.swing.text.html.parser.Entity;
                  
                  import net.minecraft.entity.EntityLiving;
                  import net.minecraft.entity.EntityLivingBase;
                  import net.minecraft.entity.SharedMonsterAttributes;
                  import net.minecraft.entity.ai.EntityAIAttackOnCollide;
                  import net.minecraft.entity.ai.EntityAILookIdle;
                  import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
                  import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
                  import net.minecraft.entity.ai.EntityAISwimming;
                  import net.minecraft.entity.ai.EntityAIWander;
                  import net.minecraft.entity.ai.EntityAIWatchClosest;
                  import net.minecraft.entity.ai.EntityMoveHelper;
                  import net.minecraft.entity.monster.EntityEnderman;
                  import net.minecraft.entity.monster.EntityIronGolem;
                  import net.minecraft.entity.monster.EntityMob;
                  import net.minecraft.entity.monster.EntitySkeleton;
                  import net.minecraft.entity.monster.EntityZombie;
                  import net.minecraft.entity.monster.IMob;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.init.Blocks;
                  import net.minecraft.init.Items;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.pathfinding.PathNavigateGround;
                  import net.minecraft.util.DamageSource;
                  import net.minecraft.util.MathHelper;
                  import net.minecraft.world.World;
                  
                  public class MonMob1 extends EntityMob
                  {
                      public MonMob1(World worldIn)
                      {
                          super(worldIn);
                          ((PathNavigateGround)this.getNavigator()).func_179688_b(true);
                          this.tasks.addTask(0, new EntityAISwimming(this));
                          this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 0.3D,false));
                          this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityEnderman.class, 0.3D, false));
                          this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityZombie.class, 0.3D, false));
                          this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntitySkeleton.class, 0.3D, false));
                          this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityMob.class, 0.3D, false));
                          this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 0.3D));
                          this.tasks.addTask(7, new EntityAIWander(this, 0.3D));
                          this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
                          this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, false));
                          this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityMob.class, false));
                          this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityEnderman.class, false));
                  
                      }
                  
                      public void applyEntityAttributes1()
                      {
                          super.applyEntityAttributes();
                          this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(40D);
                          this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(20D);
                          this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(10D);
                          this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.3);
                          this.worldObj.spawnEntityInWorld( attackingPlayer );
                          this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin));
                      }
                  
                      protected void addRandomArmor()
                      {
                          switch (this.rand.nextInt(3))
                          {
                              case 0:
                                  this.dropItem(Items.iron_ingot, 1);
                                  break;
                              case 1:
                                  this.dropItem(Items.carrot, 1);
                                  break;
                              case 2:
                                  this.dropItem(Items.potato, 1);
                  }
                      }
                  
                      protected Item getDropItem()
                      {
                          return Items.boat;
                      }
                  
                      public boolean attackEntityFrom(DamageSource source, float amount)
                      {
                          if (super.attackEntityFrom(source, amount))
                          {
                              EntityLivingBase entitylivingbase = this.getAttackTarget();
                  
                              if (entitylivingbase == null && source.getEntity() instanceof EntityLivingBase)
                              {
                                  entitylivingbase = (EntityLivingBase)source.getEntity();
                              }
                  
                              int i = MathHelper.floor_double(this.posX);
                              int j = MathHelper.floor_double(this.posY);
                              int k = MathHelper.floor_double(this.posZ);
                              }
                          return isDead;
                      } 
                  
                  }
                  
                  

                  :::
                  La classe Render :
                  :::

                  package Entity;
                  
                  import com.mod2.Reference;
                  
                  import net.minecraft.client.model.ModelBiped;
                  import net.minecraft.client.renderer.entity.RenderBiped;
                  import net.minecraft.client.renderer.entity.RenderManager;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.EntityLiving;
                  import net.minecraft.entity.EnumCreatureAttribute;
                  import net.minecraft.util.MathHelper;
                  import net.minecraft.util.ResourceLocation;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  
                  public class RenderMod2 extends RenderBiped
                  {
                  
                      public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/MonMobl.png");
                      public RenderMod2(RenderManager rendermanager, ModelBiped model, float shadow)
                      {
                          super (rendermanager, model, shadow);
                          // TODO Auto-generated constructor stub
                      }
                  
                      protected ResourceLocation getEntityTexture(EntityLiving living)
                      {
                          return this.getMobTutorielTexture((MonMob1)living);
                      }
                  
                      private ResourceLocation getMobTutorielTexture(MonMob1 mobTutoriel)
                      {
                          return texture;
                      }
                      public int getMaxHealth()
                      {
                          return 100;
                      }
                  
                      public int getAttackStrength(Entity par1Entity)
                      {
                      return 10;
                      }
                  
                      public EnumCreatureAttribute getCreatureAttribute()
                      {
                          return EnumCreatureAttribute.UNDEFINED;
                      }
                  
                  }
                  
                  

                  :::
                  La classe Model :
                  :::

                  package Entity;
                  
                  import net.minecraft.client.model.ModelBiped;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.util.MathHelper;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  
                  @SideOnly(Side.CLIENT)
                  public class ModelMonMob1 extends ModelBiped
                  {
                      private static final String __OBFID = "CL_00000869";
                  
                      public ModelMonMob1()
                      {
                          this(0.0F, false);
                      }
                  
                      protected ModelMonMob1(float p_i1167_1_, float p_i1167_2_, int p_i1167_3_, int p_i1167_4_)
                      {
                          super(p_i1167_1_, p_i1167_2_, p_i1167_3_, p_i1167_4_);
                      }
                  
                      public ModelMonMob1(float p_i1168_1_, boolean p_i1168_2_)
                      {
                          super(p_i1168_1_, 0.0F, 64, p_i1168_2_ ? 32 : 64);
                      }
                  
                      /**
                       * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
                       * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
                       * "far" arms and legs can swing at most.
                       */
                      public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
                      {
                          super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, p_78087_7_);
                          float f6 = MathHelper.sin(this.swingProgress * (float)Math.PI);
                          float f7 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * (float)Math.PI);
                          this.bipedRightArm.rotateAngleZ = 0.0F;
                          this.bipedLeftArm.rotateAngleZ = 0.0F;
                          this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F);
                          this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F;
                          this.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F);
                          this.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F);
                          this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                          this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                          this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                          this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                          this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                          this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                      }
                  }
                  

                  :::

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

                    Je comprend plus rien , la si tu lance le jeu ton mob ressemble a quoi ? Car y a aucun extends de Model donc il doit pas apparaître ? Si je ne me trompe pas. Sinon dans le proxy

                    RenderingRegistry.registerEntityRenderingHandler(EntityMobTutoriel.class, new RenderMobTutoriel(new ModelBiped(), 0.5F));
                    

                    Ta juste a remplacer

                    Oui ce gif est drôle.

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

                      J’ai déjà cette ligne^^ Mon mob apparait en jeu avec sa texture, il bouge , tape les autres mobs, me tape mais sans animation au moment de taper il leve pas les bras il se colle juste et sa fait des degats

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

                        Essaye ça dans la class  de ton mob:

                        setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity);
                        ventre.render(par7);
                        pied1.render(par7);
                        pied2.render(par7);
                        pied3.render(par7);
                        pied4.render(par7);
                        tour.render(par7);
                        dos.render(par7);
                        tete.render(par7);
                        }

                        private void setRotation(ModelRenderer model, float x, float y, float z)
                        {
                        model.rotateAngleX = x;
                        model.rotateAngleY = y;
                        model.rotateAngleZ = z;
                        }

                        public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity){

                        //Head Movement:
                         this.tete.rotateAngleY = par4 / (190F / (float)Math.PI);
                         this.tete.rotateAngleX = par5 / (180F / (float)Math.PI);
                         //Head Movement END//

                        //Rightarm Movement:
                         this.pied1.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F;
                         this.pied1.rotateAngleZ = 0.0F;
                         //Rightarm Movement END//

                        //Leftarm Movement:
                         this.pied2.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F;
                         this.pied2.rotateAngleZ = 0.0F;
                         //Leftarm Movement END//

                        //Rightleg Movement:
                         this.pied3.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2;
                         this.pied3.rotateAngleZ = 0.0F;
                         //Rightleg Movement END//

                        //LeftLeg Movement:
                         this.pied4.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2;
                         //LeftLeg Movement END//
                        }

                        Remplace pied 1 , pied 2 , pied 3 , pied 4 , tete , ventre , tour et dos par les nom de ta classe.

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

                          @‘Kriksou’:

                          J’ai déjà cette ligne^^ Mon mob apparait en jeu avec sa texture, il bouge , tape les autres mobs, me tape mais sans animation au moment de taper il leve pas les bras il se colle juste et sa fait des degats

                          Ok je pensais que ModelBipied était une classe à part donc ton ModelBipied doit etre remplacer par ton propre model , sinon tu pourra pas l’animer lorsqu’il te tape ^^ Donc dans la déclaration dans le proxy met ton ModelMob1

                          ensuite faut chercher pour que lorsque ton mob attaque tu fais l’annimation , dans le model bipied y a des trucs comme

                          if (this.aimedBow)
                            {
                                f6 = 0.0F;
                                f7 = 0.0F;
                                this.bipedRightArm.rotateAngleZ = 0.0F;
                                this.bipedLeftArm.rotateAngleZ = 0.0F;
                                this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F) + this.bipedHead.rotateAngleY;
                                this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F + this.bipedHead.rotateAngleY + 0.4F;
                                this.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F) + this.bipedHead.rotateAngleX;
                                this.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F) + this.bipedHead.rotateAngleX;
                                this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                                this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
                                this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                                this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F;
                                this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                                this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F;
                            }
                          

                          cherche si il y a un this. pour vérifier l’attaque.

                          Oui ce gif est drôle.

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

                            Euh je n’ai pas tres bien compris Legrandfifou ^^ Florian je n’ai pas compris par quoi remplacer les pieds et autres je n’ai pas cree mon propre model du coups je n’ai pas de pieds et de mains a moi dites le moi si se que je dis ne parait pas claire^^ même moi j’ai du mal a me comprendre

                            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