MFF

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

    [SEMI TUTO] Création de mon mob hostile: spawn, attaque etc.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8.8
    110 Messages 9 Publieurs 20.9k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      En fait depuis le début (si j’avais été toi) je n’aurai pas ajouté la moindre AI car de 1) tu n’en pas réellement besoin : simple mob agressif sur toutes les autres entity, exclus les mobs, et de 2) c’est te compliquer la vie et SURTOUT la compréhension du code, étant donné que tu as l’air de débuter. Donc vire toute ta méthode applyEntityAI(). Pour que ton mob puisse donc attaquer un simple extends EntitMob suffira.
      Quand à l’EnumCreatureType (je rerends ce que robin avait déjà indiqué), cela n’a rien à voir avec l’agressivité ou non de l’entity, mais sa capacité à pouvoir spawn en fonction de la difficulté sélectionnée de la partie. Laisse donc en monster.
      Pour qu’elle puisse attaquer toutes les entity passives, suis tout simplement ce tuto :
      http://www.minecraftforgefrance.fr/showthread.php?tid=730

      Et enfin pour qu’elle puisse sauter, ce tuto :
      http://www.minecraftforgefrance.fr/showthread.php?tid=907

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

        http://www.minecraftforgefrance.fr/showt…hp?tid=730>C’est non pour attaquer les entités passives mais pour régénérer son mob.
        http://www.minecraftforgefrance.fr/showt...hp?tid=907>Je m’étais déjà renseigné cela ne marche qu’en 1.7.2, pas en 1.8.8.
        Sinon merci! J’essaierai demain soir pour voir si ça fonctionne!

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

          Mais c’est le même principe –’
          Le système de get les entity aux alentours est ce que je souhaitais que tu regardes à travers ce tuto. Ensuite au lieu de heal tu set comme target.
          Ensuite pour le prob de 1.8.8, qu’est-ce qui ne va pas (je n’ai pas mon pc, donc je peux pas adapter le code) ?

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

            http://www.minecraftforgefrance.fr/showt…=730
            Je comprends toujours pas faut m’expliquer.
            http://www.minecraftforgefrance.fr/showt...tid=907
            Ne marche pas sur la 1.8.8. Avec le mob n’est plus fonctionnel, et ne popera ni naturellement ni avec l’oeuf.
            Après modifications il repop de nouveau, mais n’attaque plus, help!

            Sérieusement, les mobs comme les vaches ou les zombies sautent bien… C’est quoi la commande pour faire comme avec eux?

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

              Bah tu modifies le motionY, c’est pas compliqué :3

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

                Mon mob n’attaque plus maintenant que j’ai du tout effacer.
                Je comprends pas. Qu’est-ce qui fait qu’il n’attaque pas avec ça:
                package Entity;

                import net.minecraft.entity.EntityCreature;
                import net.minecraft.entity.SharedMonsterAttributes;
                import net.minecraft.entity.ai.EntityAIAttackOnCollide;
                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.EntityIronGolem;
                import net.minecraft.entity.monster.EntityMob;
                import net.minecraft.entity.monster.EntityPigZombie;
                import net.minecraft.entity.passive.EntityChicken;
                import net.minecraft.entity.passive.EntityCow;
                import net.minecraft.entity.passive.EntityHorse;
                import net.minecraft.entity.passive.EntityOcelot;
                import net.minecraft.entity.passive.EntityPig;
                import net.minecraft.entity.passive.EntityRabbit;
                import net.minecraft.entity.passive.EntityVillager;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.pathfinding.PathNavigateGround;
                import net.minecraft.world.World;

                public class Entityclass extends EntityMob
                {
                   public Entityclass(World world)
                   {
                       super(world);
                       this.setSize(2, 3);
                       this.applyEntityAI();
                   }

                public void applyEntityAttributes()
                   {
                       super.applyEntityAttributes();
                       this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(62D);
                       this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(9D);
                       this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
                       this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.36D);
                       this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(150D);
                   }

                protected void applyEntityAI()
                   {
                       this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
                   }
                }

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

                  [font=Ubuntu, sans-serifprotected void applyEntityAI()]
                  [font=Ubuntu, sans-serif{]
                  [font=Ubuntu, sans-serifthis.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));]
                  [font=Ubuntu, sans-serif}]
                  

                  ne set à rien l’entity à un extends EntityMob

                  Eddit:tu est en 1.8?

                  Voila ma signature

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

                    What?
                    Rien compris… 😕

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

                      Ce codage te sert à quoi?

                      
                      1.  [font=Ubuntu, sans-serif**protected**] **void** applyEntityAI()
                      2.  [font=Ubuntu, sans-serif{]
                      3.  [font=Ubuntu, sans-serif**this**].targetTasks.addTask(1, **new** EntityAINearestAttackableTarget(**this**, EntityPlayer.**class**, **true**));
                      4.  [font=Ubuntu, sans-serif}]
                      
                      

                      Voila ma signature

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

                        Ah ce qu’il m’attaque car il ne m’attaque pas. Mais ça change rien. Parce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi.
                        Il n’attaque pas et ça me saoule. Dîtes moi comment faire s’il vous plait! En un seul message! Tout le monde ici a déjà fait des mobs agressif non? Pourquoi vous ne me dîtes pas directement l’erreur et la correction? Parce que là on s’étend sur 4 pages déjà…

                        1 réponse Dernière réponse Répondre Citer -1
                        • leo01418L Hors-ligne
                          leo01418
                          dernière édition par

                          @‘conquerorguepard’:

                          Ah ce qu’il m’attaque car il ne m’attaque pas. Mais ça change rien. Parce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi.
                          Il n’attaque pas et ça me saoule. Dîtes moi comment faire s’il vous plait! En un seul message! Tout le monde ici a déjà fait des mobs agressif non? Pourquoi vous ne me dîtes pas directement l’erreur et la correction? Parce que là on s’étend sur 4 pages déjà…

                          Déjà ma première question est tu en 1.8? 
                          et de 2 tu à essayé d’enlevé

                          protected void applyEntityAI()
                          {
                          this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 3, true));
                          }
                          

                          et de 3 ce n’est pas grave si le sujet s’étend en 4 ou 18 pages le but de ce sujet est de te faire comprendre ton erreur et que tu ne la recommence plus

                          Voila ma signature

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

                            Oui je suis en 1.8 :).
                            Et j’ai essayé de l’enlever ça change rien. Il ne m’attaque toujours pas.
                            Sinon désolé si j’ai pu paraître désagréable.

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

                              Pas grave sa arrive quand on s’énerve sur un mod de 2 excuse je n’ai pas encore touché à la 1.8  😄
                              Bonne Chance
                              Sinon tien si sa peux t’aider  😉 :
                              Youtube Video

                              Voila ma signature

                              1 réponse Dernière réponse Répondre Citer 0
                              • FolganskyF Hors-ligne
                                Folgansky Correcteurs
                                dernière édition par

                                Plutôt celle-là je pense
                                Youtube Video

                                Même si je ne l’ai pas regardé x]

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

                                  En réinitialisant tout j’ai réussi à refaire fonctionner le mob. J’en suis maintenant au même point qu’en début d’après midi, avec toujours ce problème de saut. Quelqu’un a t-il une autre idée svp?

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

                                    J’ai pas bien compris ton problème de saut, tu veux qu’il se déplace en sautant où juste qu’il saute pour passer des blocks ?

                                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                      Pour passer des blocks uniquement. Car la si je me mets en hauteur il peut pas m’attaquer, donc ça sert à rien x).
                                      Et le second problème c’est qu’ils finissent par disparaitre.
                                      Y’a pas une commande pour qu’ils ne disparaissent pas ou pour leur donner un nom comme une étiquette?

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

                                        Pour le jump, je regarde ça demain (si quelqu’un n’a pas déjà répondu).
                                        Pour le despawn, mets tout simplement ça dans ton entité :

                                        @Override
                                        public boolean canDespawn()
                                        {
                                        return false;
                                        }
                                        

                                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                          [font=Ubuntu, sans-serifParce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi. ]

                                          Attends ! Moi je te propose juste des solutions et tu vas me dire que c’est de ma faute si plus rien ne marche dans ton semblant de “code” ?! Moi j’ai surtout envie de te dire D’APPRENDRE A CODER, car pour le moment tout ce que je vois dans ton code reste des lignes que tu as copié-coller (pas gênant, si ce n’était que cela…), SANS EN COMPRENDRE LE SENS…Un mob qui attaque ? C’est pas compliqué, tu l’extends EntityMob, point ! Ensuite (si déjà tu arrives à faire cela) il sera capable TOUT SEUL (c’est-à-dire sans la moindre IA à rajouter) de sauter afin de franchir des blocks…Après si malgré tout cela ça ne marche toujours pas, c’est qu’il faut debug afin de voir où est le problème…
                                          Renvoies ton code, je vais faire des tests chez moi. Tu es en quelle version déjà ? La balise devrait pouvoir l’indiquer sans qu’on ait à chercher à travers les 5 pages du topic (au cas où ça serait indiqué)…
                                          En parlant de ce titre, il faudrait VRAIMENT éditer, car “Création de mon mob”, désolé mais ça n’indique en aucun cas le(s) problème(s) que tu as recontré(s)…A la base t’était parti sur les fréquences de spawn et maintenant on se retrouve avec ton mob qui ne souhaite pas attaquer, ni sauter…Tu vois si quelqu’un a le même soucis que toi, ça m’étonnerait fortement qu’il mette la main sur ce post…

                                          1 réponse Dernière réponse Répondre Citer 2
                                          • conquerorguepardC Hors-ligne
                                            conquerorguepard
                                            dernière édition par

                                            Bonjour,
                                            encore désolé pour hier j’avais vraiment eu une sale journée, et à force d’accumuler de nouveaux problèmes j’ai pété un câble.
                                            Ce n’est pas contre vous, encore désolé 😕 (en plus ça arrive genre méga rarement ^^')

                                            Code:```java
                                            package Entity;

                                            import fr.minecraftforgefrance.modzoic.common.Modzoic;
                                            import net.minecraft.entity.SharedMonsterAttributes;
                                            import net.minecraft.entity.ai.EntityAIAttackOnCollide;
                                            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.EntityIronGolem;
                                            import net.minecraft.entity.monster.EntityMob;
                                            import net.minecraft.entity.monster.EntityPigZombie;
                                            import net.minecraft.entity.passive.EntityChicken;
                                            import net.minecraft.entity.passive.EntityCow;
                                            import net.minecraft.entity.passive.EntityHorse;
                                            import net.minecraft.entity.passive.EntityOcelot;
                                            import net.minecraft.entity.passive.EntityPig;
                                            import net.minecraft.entity.passive.EntityRabbit;
                                            import net.minecraft.entity.passive.EntityVillager;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.pathfinding.PathNavigateGround;
                                            import net.minecraft.world.World;

                                            public class Entityclass extends EntityMob
                                            {
                                                public Entityclass(World world)
                                                {
                                                    super(world);
                                                    ((PathNavigateGround)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(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
                                                    this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
                                                    this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
                                                    this.tasks.addTask(8, new EntityAILookIdle(this));
                                                    this.setSize(2, 3);
                                                    this.applyEntityAI();
                                                }

                                            public void applyEntityAttributes()
                                                {
                                                    super.applyEntityAttributes();
                                                    this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(62D);
                                                    this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(9D);
                                                    this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
                                                    this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.36D);
                                                    this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(120D);
                                                }

                                            protected void applyEntityAI()
                                                {
                                                    this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
                                                }

                                            public void dropFewItems(boolean b, int looting)
                                                {
                                                    this.dropItem(Modzoic.meatEpanterias, 6);
                                                }

                                            protected String getLivingSound()
                                                {
                                                return “:Nanuqscarnotausaurus_living_1.ogg”;
                                                }
                                            }

                                            
                                            ```java
                                            package Handlers;
                                            
                                            import java.util.Random;
                                            
                                            import fr.minecraftforgefrance.modzoic.common.Modzoic;
                                            import net.minecraft.entity.EntityList;
                                            import net.minecraft.entity.EnumCreatureType;
                                            import net.minecraft.world.biome.BiomeGenBase;
                                            import net.minecraftforge.fml.common.registry.EntityRegistry;
                                            
                                            public class EntityHandler
                                            {
                                                public static void RegisterMonster(Class entityClass, String name)
                                                {
                                                    int entityID = EntityRegistry.findGlobalUniqueEntityId();
                                                    long x = name.hashCode();
                                                    Random random = new Random(x);
                                                    int mainColor = random.nextInt() * 16777215;
                                                    int subColor = random.nextInt() * 16777215;
                                            
                                                    EntityRegistry.registerGlobalEntityID(entityClass, name, entityID);
                                                    EntityRegistry.addSpawn(entityClass, 70, 1, 3, EnumCreatureType.CREATURE, BiomeGenBase.forest, BiomeGenBase.beach, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills ,BiomeGenBase.coldBeach ,BiomeGenBase.coldTaiga ,BiomeGenBase.coldTaigaHills ,BiomeGenBase.desert ,BiomeGenBase.desertHills ,BiomeGenBase.extremeHills ,BiomeGenBase.forestHills ,BiomeGenBase.frozenRiver ,BiomeGenBase.iceMountains ,BiomeGenBase.icePlains ,BiomeGenBase.jungle ,BiomeGenBase.jungleEdge ,BiomeGenBase.jungleHills ,BiomeGenBase.megaTaiga ,BiomeGenBase.megaTaigaHills ,BiomeGenBase.mesa ,BiomeGenBase.mesaPlateau ,BiomeGenBase.mesaPlateau_F ,BiomeGenBase.plains ,BiomeGenBase.roofedForest ,BiomeGenBase.savanna ,BiomeGenBase.savannaPlateau ,BiomeGenBase.taigaHills ,BiomeGenBase.taiga ,BiomeGenBase.stoneBeach);
                                                    EntityRegistry.registerModEntity(entityClass, name, entityID, Modzoic.instance, 64, 1, true);
                                                    EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, mainColor, subColor));
                                                }
                                            }
                                            

                                            (le reste n’a pas changé, voir page 2-3)

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB