MFF

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

    Questions à propos des mobs

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    11 Messages 5 Publieurs 1.5k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Salut et bienvenue sur MFF.

      Pour la question 1+3, tu peux gérer le scale dans la fonction render du modèle.
      Voici le code de ModelQuadruped :

         public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale)
         {
             this.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entityIn);
      
             if (this.isChild)
             {
                 float f = 2.0F;
                 GlStateManager.pushMatrix();
                 GlStateManager.translate(0.0F, this.childYOffset * scale, this.childZOffset * scale);
                 this.head.render(scale);
                 GlStateManager.popMatrix();
                 GlStateManager.pushMatrix();
                 GlStateManager.scale(1.0F / f, 1.0F / f, 1.0F / f);
                 GlStateManager.translate(0.0F, 24.0F * scale, 0.0F);
                 this.body.render(scale);
                 this.leg1.render(scale);
                 this.leg2.render(scale);
                 this.leg3.render(scale);
                 this.leg4.render(scale);
                 GlStateManager.popMatrix();
             }
             else
             {
                 this.head.render(scale);
                 this.body.render(scale);
                 this.leg1.render(scale);
                 this.leg2.render(scale);
                 this.leg3.render(scale);
                 this.leg4.render(scale);
             }
         }
      

      Comme tu peux le voir il y a un cas spécifique si l’entité est un enfant (this.isChild). La tête est rendu de façon normal puis il y a un GlStateManager.scale(1.0F / f, 1.0F / f, 1.0F / f); (ou f vaut 2.0, donc ça revient à faire un scale de 0.5, soit deux fois plus petit).

      Pour la qestion 2, dans le return mets “modid:id du son”.
      Ensuite dans le dossier src/main/resources -> assets/modid/ créé un nouveau fichier nommé “sounds.json”.
      Dans ce dernier ajoutes :

      {
         "id du son": {
             "category": "neutral",
             "sounds": [
                 {
                     "name": "modid:nom du son",
                     "stream": false
                 }
             ]
         }
      }
      

      Ensuite dans le dossier src/main/resources -> assets/modid/sounds ajoute le nom fichier nom du son.ogg.

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

        Ok Merci beaucoup!
        Je vais aller tester tout ça 😉

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

          Merci ça marche nickel pour les sons et les bébés 😄

          Par contre pour ma question 3, j’ai essayé ça, en changeant la valeur de f:

          
                  if (this.isChild)
                 {
                     float f = 2.0F;
                     GL11.glPushMatrix();
                     GL11.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
                     GL11.glTranslatef(0.0F, 24.0F * scale, 0.0F);
                     this.head.render(scale);
                     this.body.render(scale);
                     this.leg1.render(scale);
                     this.leg2.render(scale);
                     this.leg3.render(scale);
                     this.leg4.render(scale);
                     GL11.glPopMatrix();
                 }
                 else
                 {
                     float f = 2.0F;
                     GL11.glPushMatrix();
                     GL11.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
                     GL11.glTranslatef(0.0F, 24.0F * scale, 0.0F);
                     this.head.render(scale);
                     this.body.render(scale);
                     this.leg1.render(scale);
                     this.leg2.render(scale);
                     this.leg3.render(scale);
                     this.leg4.render(scale);
                     GL11.glPopMatrix();
                 }
          

          Sauf que j’arrive à des trucs bizarres. Voici les différentes valeurs que j’ai testé

          • Parent f=2.0F et enfant f=2.0 > Tout marche nickel: ils sont tous les deux plus petit mais ils ont la même taille, ce qui ne m’arrange pas.
          • Parent f=1.5F et enfant f=2.0 > Le parent est sous le sol
          • Parent f=2.0F et enfant f=3.0 > L’enfant est dans les air

          J’ai aussi ce problème sur techne quand je change la deuxième variable de GIScale

          Par contre, changer la taille du bébé m’a permis de voir un autre problème, pas trop dérangeant en soi mais qui est un peu spécial. C’est le parent qui suit l’enfant et non l’inverse pourtant pour l’ia du mob j’ai utilisé ça:

          this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D));
          

          que j’ai copier-coller de l’ia du cochon, chez qui tout est normal. Comment le résoudre?

          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 faut que tu ajoutes la hauteur avec GL11.glTranslatef

            Pour l’ia je ne sais pas.

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

              Ou déplace le scale après la translation, l’ordre peut beaucoup influer

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Merci beaucoup! Ça fonctionne en rajoutant de la hauteur.
                J’ai encore deux petites questions:

                1. Pour ajouter un deuxième son custom, pour, par exemple, un autre animal, je dois créer un second fichier sounds.json?
                2. Est-il possible d’avoir plusieurs sons dans le getLivingSound qui seraient random? Comment faut-il faire?
                1 réponse Dernière réponse Répondre Citer 0
                • BrokenSwingB Hors-ligne
                  BrokenSwing Moddeurs confirmés Rédacteurs
                  dernière édition par

                  Pour le son random :

                  
                  protected String getLivingSound()
                  {
                  Random rand = new Random();
                  int song = rand.nextInt(5);
                  switch(int) {
                  case 0:
                  return ….;
                  case 1:
                  return ....;
                  case ....
                  default:
                  return ...;
                  }
                  }
                  
                  
                  1 réponse Dernière réponse Répondre Citer 1
                  • AymericRedA Hors-ligne
                    AymericRed
                    dernière édition par

                    Tu peux aussi remplacer le ```java
                    Random rand = new Random(); //Par :
                    Random rand = worldObj.rand;

                    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
                    • robin4002R Hors-ligne
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                      dernière édition par

                      Tous doit être mit dans le même fichier sounds.json.
                      Il suffit de suivre la structure du json.

                      {
                      "id du son": {
                      "category": "neutral",
                      "sounds": [
                      {
                      "name": "modid:nom du son",
                      "stream": false
                      }
                      ]
                      },
                      {
                      "id d'un autre son": {
                      "category": "neutral",
                      "sounds": [
                      {
                      "name": "modid:nom de cette autre son",
                      "stream": false
                      }
                      ]
                      }
                      }
                      

                      Pour le random, le système de son de minecaft peut directement le gérer.
                      Regardes par exemple les sons de la vache (extrait du fichier sounds.json de minecraft) :

                      "mob.cow.hurt": {
                      "category": "neutral",
                      "sounds": [
                      "mob/cow/hurt1",
                      "mob/cow/hurt2",
                      "mob/cow/hurt3"
                      ]
                      },
                      "mob.cow.say": {
                      "category": "neutral",
                      "sounds": [
                      "mob/cow/say1",
                      "mob/cow/say2",
                      "mob/cow/say3",
                      "mob/cow/say4"
                      ]
                      },
                      "mob.cow.step": {
                      "category": "neutral",
                      "sounds": [
                      "mob/cow/step1",
                      "mob/cow/step2",
                      "mob/cow/step3",
                      "mob/cow/step4"
                      ]
                      },
                      

                      Il suffit d’indiquer plusieurs fichier ogg.

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

                        Merci à vous pour vos réponses 🙂

                        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