MFF

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

    Ajouter un nom au dessus de votre mob

    Planifier Épinglé Verrouillé Déplacé Les entités
    1.6.x
    15 Messages 9 Publieurs 7.3k 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.
    • elias54E Hors-ligne
      elias54 Administrateurs
      dernière édition par 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) 🆒

      Mon site | GitHub

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

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

        Auteur originale de Sevenno's Addons et de [url=http://www.minecraftfor…

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

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

          1 réponse Dernière réponse Répondre Citer 0
          • elias54E Hors-ligne
            elias54 Administrateurs
            dernière édition par

            C’est vraiment si difficile que ça ?

            Mon site | GitHub

            1 réponse Dernière réponse Répondre Citer 0
            • Superloup10S Hors-ligne
              Superloup10 Modérateurs
              dernière édition par

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

              Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

              Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

              1 réponse Dernière réponse Répondre Citer 0
              • PatatoufetP Hors-ligne
                Patatoufet
                dernière édition par 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 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 y a ce code-la mais aussi un autre code dans le rendu de l’entité.

                  1 réponse Dernière réponse Répondre Citer 0
                  • elias54E Hors-ligne
                    elias54 Administrateurs
                    dernière édition par

                    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 ^^

                    Mon site | GitHub

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

                      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 ? =D

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

                        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 😉

                        >! Bonjour/Bonsoir,
                        >! Vous désirez un Modèle ou une Texture pour votre Mod ? Vous pouvez faire un…

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

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

                          MisterFire34
                          Fondateur de EreaNation :cool:
                          Site: EreaNation :D

                          1 réponse Dernière réponse Répondre Citer 0
                          • isadorI Hors-ligne
                            isador Moddeurs confirmés Modérateurs
                            dernière édition par

                            bha tu fait ce tuto et tu regarde les erreur

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

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

                              >! Bonjour/Bonsoir,
                              >! Vous désirez un Modèle ou une Texture pour votre Mod ? Vous pouvez faire un…

                              1 réponse Dernière réponse Répondre Citer 0
                              • elias54E Hors-ligne
                                elias54 Administrateurs
                                dernière édition par

                                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 ><)

                                Mon site | GitHub

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

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

                                  >! Bonjour/Bonsoir,
                                  >! Vous désirez un Modèle ou une Texture pour votre Mod ? Vous pouvez faire un…

                                  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