Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Ajouter un nom au dessus de votre mob

    Les entités
    1.6.x
    9
    15
    6111
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • elias54
      elias54 Administrateurs last edited by robin4002

      Aujourd’hui dans ce tutoriel nous allons apprendre à ajouter un nom au dessus de notre mob.
      Voici un petit screen d’exemple :
      perso-avec-nom.png
      J’utilise lokoise comme exemple car je fais parti du développement de ce mod créer par @Thibrex.

      Trêve de blablaterie, et passons au sommaire !

      –SOMMAIRE–

      1. Les pré-requis
      2. Ce qu’il nous faut dans notre entity
      3. Côté Render !

      Les pré-requis

      Pour ce tutoriel, il vous faut tout d’abord une entité classique (une base quoi) et un render !
      Si vous n’avez pas ces conditions pour ce tutoriel, je vous invite à aller voir mon tutoriel sur la base des mobs ici.

      Ce qu’il nous faut dans notre entity

      Pour commencer, nous allons déclarer un String que nous allons appeler “mobName” :

      public String mobName;
      

      Ensuite, dans le constructeur de votre entité, initialisez votre variable comme ceci :

      mobName = "Le nom à faire apparaître au dessus du mob !";
      

      On a déjà fini ?!
      -Pour la partie entity oui 🙂

      Côté Render !

      Nous arrivons à la phase finale de ce tutoriel : Le RENDU ! ^^

      Je tiens juste à vous préciser que cette partie est la plus complexe du tutoriel, car c’est la partie du rendu qu’il faut toujours se douter qu’elle sera la plus complexe. 😉 (Je généralise en fonction de ce genre de choses.)

      Pour commencer, vous devez ajouter cette méthode quelque part dans votre render :

      public void renderNomDeVotreMobA(EntityNomDeVotreMob entity, double d, double d1, double d2, float f, float f1)
      {
      }
      

      Remplacez “NomDeVotreMob” par le nom de votre mob. (Ah oui, ne supprimez pas le “A” juste à côté de “NomDeVotreMob”, il est important.)

      Maintenant que nous avons ajouté la méthode, celle ci nécessite un appel d’une méthode de la super classe (ou de la classe parente si vous préférez). Ajoutez cette ligne dans la méthode :

      super.doRenderLiving(entity, d, d1, d2, f, f1);
      

      PAS SI VITE ! Le tuto n’est pas terminé, il nous reste l’essentiel ainsi que l’appel de la méthode à ajouter ! 😉

      Nous allons mettre une condition qui vérifie si le String mobName de notre entity ne contient pas 0 caractère. Si mobName a + de 0 caractère, alors faire un render du nom affiché, sinon, ne rien afficher. Voici la condition :

      if(entity.mobName.length() > 0 && entity.mobName != "")
      {
      }
      

      Maintenant il faut exécuter ce qu’il y a dans la condition (donc compléter ce que la condition fait). Nous allons appeler une ligne qui se trouve dans la classe parente de notre Render !

      renderLivingLabel(entity, entity.mobName, d, d1, d2, 64);
      

      Décortiquons cette ligne ! :3
      renderLivingLabel = le nom de la méthode
      entity = l’entité porteuse du nom à afficher
      entity.mobName = le String mobName de notre entité
      d, d1, d2 = quelques paramètre concernant la position
      64 = Je ne sais pas ce que c’est, mais il me semble qu’il s’agirait de la taille du nom.

      Normalement, votre méthode devrait ressembler à ça :

      public void renderNomDeVotreMobA(EntityNomDeVotreMob entity, double d, double d1, double d2, float f, float f1)
      {
          super.doRenderLiving(entity, d, d1, d2, f, f1);
      
          if(entity.mobName.length() > 0 && entity.mobName != "")
          {
              renderLivingLabel(entity, entity.mobName, d, d1, d2, 64);
          }
      }
      

      Nous avons presque fini, il nous reste 2 méthode à ajouter :
      -une pour indiquer qu’on utilise un render custom (du moment qu’on ajoute un truc en + au render, ce dernier est considéré comme custom)
      -une qui va appeler notre méthode renderNomDeVotreMobA

      Allons-y pour la première :

      public void doRenderLiving(EntityLiving entityliving, double d, double d1, double d2, float f, float f1)
      {
          super.doRenderLiving((EntityNomDeVotreMob) entityliving, d, d1, d2, f, f1);
      }
      

      Encore une fois remplacez NomDeVotreMob par le nom de votre mob. ^^

      Maintenant nous allons appeler (enfin) notre méthode renderNomDeVotreMobA dans une AUTRE méthode :

      public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
      {
          renderNomDeVotreMob((EntityNomDeVotreMob)entity, d, d1, d2, f, f1);
      }
      

      Encore une fois remplacez NomDeVotreMob par le nom de votre mob.

      Et voilà, nous avons fini ! Je vous donne le résultat final de l’ensemble des méthodes UNIQUEMENT !

      L’entité :

      // à déclarer au dessus de votre constructeur
      public String mobName;
      // à initialiser DANS votre constructeur
      mobName = "Le nom du mob à afficher sur la tête de celui-ci";
      

      Le Render :

      public void renderNomDeVotreMobA(EntityNomDeVotreMob entity, double d, double d1, double d2, float f, float f1)
      {
          super.doRenderLiving(entity, d, d1, d2, f, f1);
      
          if(entity.mobName.length() > 0 && entity.mobName != "")
          {
              renderLivingLabel(entity, entity.mobName, d, d1, d2, 64);
          }
      }
      
      public void doRenderLiving(EntityLiving entityliving, double d, double d1, double d2, float f, float f1)
      {
          super.doRenderLiving((EntityNomDeVotreMob) entityliving, d, d1, d2, f, f1);
      }
      
      public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
      {
          renderNomDeVotreMobA((EntityNomDeVotreMob)entity, d, d1, d2, f, f1);
      }
      

      Voili voilou, j’espère que ce tutoriel vous aura plus. Je sais qu’il n’a pas été demandé, mais en tant qu’admin, je me dois de partager mon savoir. ^^ (cc Robin4002) 🆒

      1 Reply Last reply Reply Quote 0
      • S
        sevenno07 last edited by

        Héhé ! Bien sympa se petit tuto, merci :).

        1 Reply Last reply Reply Quote 0
        • Baba_76
          Baba_76 last edited by

          Tu pourais faire un Tuto stp pour expliqué comment ta fait pour mettre une épée a ton mob comme lokoise ?

          1 Reply Last reply Reply Quote 0
          • elias54
            elias54 Administrateurs last edited by

            C’est vraiment si difficile que ça ?

            1 Reply Last reply Reply Quote 0
            • Superloup10
              Superloup10 Modérateurs last edited by

              @Baba_76:Il te suffit de regarder le pigman pour ça.

              1 Reply Last reply Reply Quote 0
              • Patatoufet
                Patatoufet last edited by robin4002

                en théorie :

                /**
                * Sets the held item, or an armor slot. Slot 0 is held item. Slot 1-4 is armor. Params: Item, slot
                */
                public void setCurrentItemOrArmor(int par1, ItemStack par2ItemStack){
                    this.equipment[par1] = par2ItemStack;
                }
                

                Personnellement chez moi cela ne fonctionne pas. J’ai pas encore vraiment cherché d’où cela venait (pas eu le temps :()

                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                  Il y a ce code-la mais aussi un autre code dans le rendu de l’entité.

                  1 Reply Last reply Reply Quote 0
                  • elias54
                    elias54 Administrateurs last edited by

                    Personnellement j’utilise ce code :

                    
                    public static final ItemStack heldItem = new ItemStack(Item.swordDiamond, 1);
                    
                    

                    et tout en bas de la classe :

                    
                    public ItemStack getHeldItem()
                    {
                    return this.heldItem;
                    }
                    
                    

                    Ça fonctionne également avec des tableaux (pour éviter de faire 89654321 fois public static final …) :

                    
                    public static ItemStack equippedItems[];
                    public static int currentItem;
                    
                    

                    dans le constructeur :

                    
                    this.currentItem = rand.nextInt(equippedItems.length); //donc qui va prendre un item random dans l'array
                    
                    
                    
                    public ItemStack getHeldItem()
                    {
                    return this.equippedItems[currentItem];
                    }
                    
                    

                    et en dessous de cette méthode suffit de mettre un static nu :

                    
                    static {
                    equippedItems = (new ItemStack[] {
                    new ItemStack(Item.diamond, 1),
                    new ItemStack (Item.emerald, 1),
                    new ItemStack (Item.swordDiamond, 1)
                    });
                    }
                    
                    

                    Rien de difficile ^^

                    1 Reply Last reply Reply Quote 0
                    • Baba_76
                      Baba_76 last edited by

                      Merci pour cet aide, et par hasard tu c’est pas comment faire pour que les mob nous tape avec des coup d’épée justement ? 😃

                      1 Reply Last reply Reply Quote 0
                      • Kujaroth
                        Kujaroth last edited by

                        64 = Je ne sais pas ce que c’est, mais il me semble qu’il s’agirait de la taille du nom.

                        C’est la distance d’affichage, plus elle est grand, plus tu verra le nom loin, plus elle est petite, tu la verra de moins loin 😉

                        1 Reply Last reply Reply Quote 0
                        • M
                          MisterFire34 last edited by

                          qui peut me dire les modif a faire pour la 1.7 svp?

                          1 Reply Last reply Reply Quote 0
                          • isador
                            isador Moddeurs confirmés Modérateurs last edited by

                            bha tu fait ce tuto et tu regarde les erreur

                            1 Reply Last reply Reply Quote 0
                            • Kujaroth
                              Kujaroth last edited by

                              le “renderLivingLabel” est souligné en 1.7.10, ainsi que le “doRenderLiving” 😕 il me propose “doRender” mais toujours une erreur au ““renderLivingLabel”” ><

                              1 Reply Last reply Reply Quote 0
                              • elias54
                                elias54 Administrateurs last edited by

                                C’est un tuto 1.6.X. ^^ J’ai vérifié pour la 1.7, et c’est un tout autre système (que j’ai du mal à capter d’ailleurs…). Donc désolé mais pour ce tuto 1.7 va falloir attendre un peu 😉 (d’autant plus que la 1.8 étant sorti qui n’arrange pas les choses ><)

                                1 Reply Last reply Reply Quote 0
                                • Kujaroth
                                  Kujaroth last edited by

                                  Dac, merci. Je vais éviter de trop m’y attarder dessus et avancer alors ^^

                                  1 Reply Last reply Reply Quote 0
                                  • 1 / 1
                                  • First post
                                    Last post
                                  Design by Woryk
                                  Contact / Mentions Légales / Faire un don

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB