MFF

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

    Mob incompréhensible

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    60 Messages 8 Publieurs 14.0k 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.
    • O Hors-ligne
      Oeilomega
      dernière édition par

      Bonjour, j’ai essayé de coder un mob entièrement modulable:

      ​package fr.oeilomega.wozcontent.common;
      
      import java.util.List;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityCreature;
      import net.minecraft.entity.SharedMonsterAttributes;
      import net.minecraft.entity.ai.EntityAIAttackOnCollide;
      import net.minecraft.entity.ai.EntityAIAvoidEntity;
      import net.minecraft.entity.ai.EntityAIHurtByTarget;
      import net.minecraft.entity.ai.EntityAILookIdle;
      import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
      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.monster.EntityMob;
      import net.minecraft.entity.passive.EntityChicken;
      import net.minecraft.entity.passive.EntityCow;
      import net.minecraft.entity.passive.EntityPig;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.util.AxisAlignedBB;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class wozzombie extends EntityMob
      {
      public wozzombie(World world)
      {
      super(world);
      this.getNavigator().setBreakDoors(true);
      this.tasks.addTask(0, new EntityAISwimming(this));
      this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
      this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D));
      this.tasks.addTask(5, new EntityAIMoveThroughVillage(this, 1.0D, false));
      this.tasks.addTask(6, new EntityAIWander(this, 1.0D));
      this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 0.0F));
      this.tasks.addTask(7, new EntityAILookIdle(this));
      this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false));
      this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
      }
      
      public void applyEntityAttributes()
      {
      super.applyEntityAttributes();
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
      
      }
      
      }
      
      

      Donc normalement il fait bien un coeur de dégâts non ?
      Il est censé me voir à 40 bloc non ?
      il est censé allez aussi vite qu’une tortue ayant la gastro-entérite non ?

      Alors pourquoi, il me three-shot, a des yeux de sniper et cours aussi vite q’un sprinteur enragé ?

      Second problème:

      ​package fr.oeilomega.wozcontent.proxy;
      
      import net.minecraft.client.model.ModelBiped;
      import cpw.mods.fml.client.registry.RenderingRegistry;
      import fr.oeilomega.wozcontent.client.Modelwozombie;
      import fr.oeilomega.wozcontent.common.wozzombie;
      
      public class ClientProxy
        extends CommonProxy
      {
        public void registerRender() {}
        {
            RenderingRegistry.registerEntityRenderingHandler(wozzombie.class, new renderwozzombie(new Modelwozombie(), 0.5F));
      
        }
      }
      

      J’ai essayé de faire mon rendu avec techne comme dans le tutoriel sauf que…Il me barre la ligne

      Merci d’avance !

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

        c’est bien d’avoir des ia dans le constructeur encore faut-il cette méthode pour les activer 😉

        ​    /**
        
             * Returns true if the newer Entity AI code should be run
             */
            protected boolean isAIEnabled()
            {
                return true;
            }
        
        1 réponse Dernière réponse Répondre Citer 0
        • O Hors-ligne
          Oeilomega
          dernière édition par

          Wait…Me dit pas que parce que j’ai pas utiliser la méthode que les attributs de l’entité ne fonctionne pas

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

            Pour ce qui est de la vitesse de déplacement, la vitesse de base(si on ne met pas la fonction movementSpeed) est de 0.6999… Donc ton mob avance plus vite que la moyenne si tu veux vraiment qu’il soit lent met 0.2 ou moins à toi de voir.

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

              Je veux juste qu’il ai les mêmes attributs qu’un zombie.

              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 void registerRender() {}
                  {
                      RenderingRegistry.registerEntityRenderingHandler(wozzombie.class, new renderwozzombie(new Modelwozombie(), 0.5F));
                  }
                

                Si tu as des accolades qui ne servent à rien, normal que ça ne fonctionne pas
                ↓↓↓↓↓

                public void registerRender()
                {
                RenderingRegistry.registerEntityRenderingHandler(wozzombie.class, new renderwozzombie(new Modelwozombie(), 0.5F));
                }
                
                1 réponse Dernière réponse Répondre Citer 0
                • O Hors-ligne
                  Oeilomega
                  dernière édition par

                  Toujours le même problème en fait

                  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 te barre quelle ligne ?

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

                      celle ci: new renderwozzombie(new Modelwozombie(), 0.5F));

                      Ps: mtn, c’est plus un sprinteur enragé, c’est Usain Bolt dans 28 jours plus tard 😮

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

                        @‘Oeilomega’:

                        celle ci: new renderwozzombie(new Modelwozombie(), 0.5F));

                        Ps: mtn, c’est plus un sprinteur enragé, c’est Usain Bolt dans 28 jours plus tard 😮

                        Souvent quand un mob est aussi rapide que ça c’est un problème d’ia 
                        As-tu bien mis ma méthode de mon message ci-dessus, dans la classe de ton entity ?

                        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

                          Eclipse te donne quoi comme erreur ?

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

                            mon nouveau code:

                            ​package fr.oeilomega.wozcontent.common;
                            
                            import java.util.List;
                            
                            import net.minecraft.entity.Entity;
                            import net.minecraft.entity.EntityCreature;
                            import net.minecraft.entity.SharedMonsterAttributes;
                            import net.minecraft.entity.ai.EntityAIAttackOnCollide;
                            import net.minecraft.entity.ai.EntityAIAvoidEntity;
                            import net.minecraft.entity.ai.EntityAIHurtByTarget;
                            import net.minecraft.entity.ai.EntityAILookIdle;
                            import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
                            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.monster.EntityMob;
                            import net.minecraft.entity.passive.EntityChicken;
                            import net.minecraft.entity.passive.EntityCow;
                            import net.minecraft.entity.passive.EntityPig;
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.init.Blocks;
                            import net.minecraft.util.AxisAlignedBB;
                            import net.minecraft.util.MathHelper;
                            import net.minecraft.world.World;
                            
                            public class wozzombie extends EntityMob
                            {
                            public wozzombie(World world)
                            {
                            super(world);
                            this.getNavigator().setBreakDoors(true);
                            this.tasks.addTask(0, new EntityAISwimming(this));
                            this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
                            this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D));
                            this.tasks.addTask(5, new EntityAIMoveThroughVillage(this, 1.0D, false));
                            this.tasks.addTask(6, new EntityAIWander(this, 1.0D));
                            this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 0.0F));
                            this.tasks.addTask(7, new EntityAILookIdle(this));
                            this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false));
                            this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
                            }
                            
                            public void applyEntityAttributes()
                            {
                            super.applyEntityAttributes();
                            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
                            this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1D);
                            this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D);
                            this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0D);
                            this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.1D);
                            
                            }
                            protected boolean isAIEnabled()
                            {
                                return true;
                            }
                            }
                            
                            

                            et pour robin:

                            ​new renderwozzombie(new Modelwozombie(), 0.5F));
                            

                            The constructor renderwozzombie(Modelwozombie, float) is undefined

                            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

                              envoie ta classe renderwozzombie
                              (d’ailleurs ta classe devrait être nommé RenderWozzombie pour respecter la convention Java).

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

                                ​package fr.oeilomega.wozcontent.proxy;
                                
                                import fr.oeilomega.wozcontent.common.wozcontent;
                                import fr.oeilomega.wozcontent.common.wozzombie;
                                import net.minecraft.client.model.ModelBiped;
                                import net.minecraft.client.renderer.entity.RenderBiped;
                                import net.minecraft.entity.EntityLiving;
                                import net.minecraft.util.ResourceLocation;
                                
                                public class renderwozzombie extends RenderBiped
                                {
                                    public final ResourceLocation texture = new ResourceLocation(wozcontent.MODID, "textures/entity/wozzombie1.png");
                                
                                public renderwozzombie(ModelBiped model, float shadow)
                                {
                                super(model, shadow);
                                }
                                
                                protected ResourceLocation getEntityTexture(EntityLiving living)
                                {
                                return this.getwozzombieTexture((wozzombie)living);
                                }
                                
                                private ResourceLocation getwozzombieTexture(wozzombie wozzombie)
                                {
                                return texture;
                                }
                                }
                                

                                Et voila !

                                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

                                  Si ton modèle n’est pas extends ModelBiped, il faut que tu change le code de ton rendu, il faut faire un rendu extends RenderLiving

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

                                    Je viens de le faire et il y a aucune amélioration…

                                    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

                                      Renvoie ta classe après modification.

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

                                        le model:

                                        ​package fr.oeilomega.wozcontent.client;
                                        
                                        import net.minecraft.client.model.ModelBase;
                                        import net.minecraft.client.model.ModelRenderer;
                                        import net.minecraft.entity.Entity;
                                        
                                        public class Modelwozombie extends ModelBase
                                        {
                                          //fields
                                            ModelRenderer head;
                                            ModelRenderer body;
                                            ModelRenderer rightarm;
                                            ModelRenderer leftarm;
                                            ModelRenderer rightleg;
                                            ModelRenderer leftleg;
                                        
                                          public Modelwozombie()
                                          {
                                            textureWidth = 64;
                                            textureHeight = 32;
                                        
                                              head = new ModelRenderer(this, 0, 0);
                                              head.addBox(-4F, -8F, -4F, 8, 8, 8);
                                              head.setRotationPoint(0F, 0F, 0F);
                                              head.setTextureSize(64, 32);
                                              head.mirror = true;
                                              setRotation(head, 0F, 0F, 0F);
                                              body = new ModelRenderer(this, 16, 16);
                                              body.addBox(-4F, 0F, -2F, 8, 12, 4);
                                              body.setRotationPoint(0F, 0F, 0F);
                                              body.setTextureSize(64, 32);
                                              body.mirror = true;
                                              setRotation(body, 0F, 0F, 0F);
                                              rightarm = new ModelRenderer(this, 40, 16);
                                              rightarm.addBox(-3F, -2F, -2F, 4, 12, 4);
                                              rightarm.setRotationPoint(-5F, 2F, 0F);
                                              rightarm.setTextureSize(64, 32);
                                              rightarm.mirror = true;
                                              setRotation(rightarm, 0F, 0F, 0F);
                                              leftarm = new ModelRenderer(this, 40, 16);
                                              leftarm.addBox(-1F, -2F, -2F, 4, 12, 4);
                                              leftarm.setRotationPoint(5F, 2F, 0F);
                                              leftarm.setTextureSize(64, 32);
                                              leftarm.mirror = true;
                                              setRotation(leftarm, 0F, 0F, 0F);
                                              rightleg = new ModelRenderer(this, 0, 16);
                                              rightleg.addBox(-2F, 0F, -2F, 4, 12, 4);
                                              rightleg.setRotationPoint(-2F, 12F, 0F);
                                              rightleg.setTextureSize(64, 32);
                                              rightleg.mirror = true;
                                              setRotation(rightleg, 0F, 0F, 0F);
                                              leftleg = new ModelRenderer(this, 0, 16);
                                              leftleg.addBox(-2F, 0F, -2F, 4, 12, 4);
                                              leftleg.setRotationPoint(2F, 12F, 0F);
                                              leftleg.setTextureSize(64, 32);
                                              leftleg.mirror = true;
                                              setRotation(leftleg, 0F, 0F, 0F);
                                          }
                                        
                                          public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
                                          {
                                            super.render(entity, f, f1, f2, f3, f4, f5);
                                            setRotationAngles(f, f1, f2, f3, f4, f5, entity);
                                            head.render(f5);
                                            body.render(f5);
                                            rightarm.render(f5);
                                            leftarm.render(f5);
                                            rightleg.render(f5);
                                            leftleg.render(f5);
                                          }
                                        
                                          private void setRotation(ModelRenderer model, float x, float y, float z)
                                          {
                                            model.rotateAngleX = x;
                                            model.rotateAngleY = y;
                                            model.rotateAngleZ = z;
                                          }
                                        
                                          public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
                                          {
                                            super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
                                          }
                                        }
                                        
                                        

                                        Le rendu:

                                        ​package fr.oeilomega.wozcontent.proxy;
                                        
                                        import fr.oeilomega.wozcontent.common.wozcontent;
                                        import fr.oeilomega.wozcontent.common.wozzombie;
                                        import net.minecraft.client.model.ModelBiped;
                                        import net.minecraft.client.renderer.entity.RenderBiped;
                                        import net.minecraft.client.renderer.entity.RenderLiving;
                                        import net.minecraft.entity.Entity;
                                        import net.minecraft.entity.EntityLiving;
                                        import net.minecraft.util.ResourceLocation;
                                        
                                        public class renderwozzombie extends RenderLiving
                                        {
                                            public final ResourceLocation texture = new ResourceLocation(wozcontent.MODID, "textures/entity/wozzombie1.png");
                                        
                                        public renderwozzombie(ModelBiped model, float shadow)
                                        {
                                        super(model, shadow);
                                        }
                                        
                                        protected ResourceLocation getEntityTexture(EntityLiving living)
                                        {
                                        return this.getMobTutorielTexture((wozzombie)living);
                                        }
                                        
                                        private ResourceLocation getMobTutorielTexture(wozzombie wozzombie)
                                        {
                                        return texture;
                                        }
                                        
                                        @Override
                                        protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
                                            // TODO Auto-generated method stub
                                            return null;
                                        }
                                        }
                                        
                                        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

                                          Remplace
                                          public renderwozzombie(ModelBiped model, float shadow)

                                          par

                                          public renderwozzombie(ModelBase model, float shadow)

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

                                            OK, y’a plus d’erreurs mais le model apparait pas

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB