• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Appliquer un son a un mob/getEntityAttribute

    Sans suite
    5
    22
    5255
    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.
    • Kujaroth
      Kujaroth dernière édition par

      Plop, ça fait depuis un moment que j’essaie d’appliquer un son a mon mob

      pour la classe eventsound j’ai essayé .addSound(“dofusmobs:bouftou_ambiant.ogg”); ainsi que .addStreaming(“dofusmobs:bouftou_ambiant.ogg”);

      dans mon coremod j’appelle bien le eventsound

      if(event.getSide().isClient())
      {
      MinecraftForge.EVENT_BUS.register(new EventSoundDofusMobs());
      }
      
      

      mes sont sont bien dans forge/src/assets/dofusmob/sound…

      J’ai un peux tout essayé et rien…

      /* Returns the sound this mob makes while it's alive.
      */
      protected void getLivingSound(World world, int x, int y, int z)
      {
      world.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "dofusmobs:bouftou_ambiant.ogg", 1.0F, 1.0F);
      }
      
      /**
      * Returns the sound this mob makes when it is hurt.
      */
      protected void getHurtSound(World world, int x, int y, int z)
      {
      
      world.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "dofusmobs.sound.bouftou_ambiant.ogg", 1.0F, 1.0F); }
      
      /**
      * Returns the sound this mob makes on death.
      */
      protected void getDeathSound(World world, EntityPlayer player)
      {
      world.playSoundAtEntity(player, "dofusmobs:bouftou_ambiant.ogg", 1.0F, 1.0F);
      }
      
      protected String getAttackSound()
      {
      
      return "dofusmobs:bouftou_attaque.ogg";
      }
      

      Donc… Bizzare…

      J’ai aussi un autre probleme dont je viens de m’en rendre compte…

      protected void applyEntityAttributes()
      {
      super.applyEntityAttributes();
      if (mobLevel == 11)
      {
      
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(8.0D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(0.0D);
      this.experienceValue = 50;
      }
      
      if (mobLevel == 12)
      {
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(10.0D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(0.0D);
      this.experienceValue = 60;
      }
      if (mobLevel == 13)
      {
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(12.0D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(0.0D);
      this.experienceValue = 70;
      }
      if (mobLevel == 14)
      {
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(18.0D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(0.0D);
      this.experienceValue = 80;
      }
      if (mobLevel == 15)
      {
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(22.0D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(0.0D);
      this.experienceValue = 90;
      }
      
      }
      

      Je voulais faire en sorte que si le mob est level 11 alors il a tel stat, s’il est level 15 alors il prend tel stats… Le soucis c’est que le level 11 a les mêmes stats que le 15… Or, j’aurai pensé que ça aurai fonctionné comme ça… J’ai loupé un truc ? 😕

      Merci

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

        Pas de .ogg dans la fonction getAttacksound du mob.

        1 réponse Dernière réponse Répondre Citer 0
        • jglrxavpok
          jglrxavpok Modérateurs dernière édition par

          Dans tes String, retire les .ogg, tu n’en as pas besoin.
          Et normalement, ça devrait marcher

          Modérateur sur MFF. 
          Mon Github: http://github.com/jglrxavpok
          Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

            pour les stat essaye de réinitialiser ta variable avant que ca créer le mob

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

              J’ai enlever les .ogg, et toujours rien, même avec le chemin complet ><

              Quand a la vie du mob, ne sachant pas vraiment ou le problème j’ai décidé d’afficher d’affiché la variable de leur vie max… Et la j’ai vue que c’était 20 ! Le problème ?! Aucun de mes monstres n’ont ses points de vie, c’est soit 18 ou 22, mais pas 20… Donc je cherche d’où il peut trouvé ses 20… Je viens de vérifié aussi pour l’exp… ça donne celle de base et non la mienne ^^’

              Déplus, comment faire pour actualisé une variable ? (genre celle des pdv actuelle) car elle ne se rafraichit pas 😕

              EDIT : a première vue, c’est les conditions de mes attribues qu’il n’aime pas ><

              EDIT : C’est la fonction du level aleatoire qui fait tout m*rder en faite -_-

              EDIT : Voila enfin !!! Mais y’a un soucis ! Par exemple je pose un montre, il est level 11 avec 8 pdv. Y’a sont level et ses pdv qui sont correctement afficher. Cependant, si je pose le même monstre qui lui spawn level 15 avec 18 pdv, le monstre level 11 lui vole ses stats >< et la, vraiment mais vraiment aucune idée ><

              >! 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
              • isador
                isador Moddeurs confirmés Modérateurs dernière édition par

                Regarde si tu n’as pas te problème au ramdom de level

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

                  Nop, tout ce qui est du coté du random est bon maintenant, en faite, le soucis est, je pense, qu’il réécrit sur la classe de l’entité a chaque fois que je pose cette entité, or, il faudrait empêché la réécriture, mais aucune idée du comment, et ci c’est bien ça le problème ^^’

                  >! 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
                  • isador
                    isador Moddeurs confirmés Modérateurs dernière édition par

                    Oue je pense que le bug vient de la

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                      Il faut que tu enregistres les niveaux dans le tag nbt du mob. (fonction writeToNBT et readFromNBT)

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

                        Ok merci… Je voie ce que tu veux dire mais c’est du chinois, j’ai jamais utilisé les writeToNBT et readFromNBT 😕

                        T’aurai un tuto, gib ou quoi que se soit pour m’aider Histoire de voire comment ça marche et tout ? Car aucune idée de comment ça fonctionne et a priori la javadoc de forge n’en parle pas 😕 Ou alors la recherche windows est foireuse ^^’

                        j espert que ça réglera aussi le problème de l’xp, j’ai beau mettre n’importe quoi, il prend les 5 de l’EntityMob -_-

                        EDIT :

                        dans le tag nbt du mob.

                        Surtout ça que j’ai pas saisi ^^’

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

                          public void writeEntityToNBT(NBTTagCompound nbtTag)
                          {
                          super.writeEntityToNBT(nbtTag);
                          nbtTag.setTypeDeVariable("nom", this.taVariable);
                          }
                          
                          public void readEntityFromNBT(NBTTagCompound nbtTag)
                          {
                          super.readEntityFromNBT(nbtTag);
                          taVariable = nbtTag.getTypeDeVariable("nom");
                          }
                          
                          1 réponse Dernière réponse Répondre Citer 0
                          • Kujaroth
                            Kujaroth dernière édition par

                            Ha… C’est aussi “bidon” ^^ Je vais tester et j’edit mais je pense qu’il n’y aura pas de problème de se côté la 😃

                            Reste toujours le problème du son pas contre… Le chemin est bon et tout, comprend pas xD

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

                              Fait voir ton code actuel ?

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

                                package dofusMobs.Client;
                                
                                import java.util.Random;
                                
                                import org.lwjgl.opengl.GL11;
                                
                                import net.minecraft.entity.Entity;
                                import net.minecraft.entity.EntityLivingBase;
                                import net.minecraft.entity.SharedMonsterAttributes;
                                import net.minecraft.entity.ai.EntityAISwimming;
                                import net.minecraft.entity.ai.attributes.AttributeInstance;
                                import net.minecraft.entity.ai.attributes.AttributeModifier;
                                import net.minecraft.entity.monster.EntityMob;
                                import net.minecraft.entity.player.EntityPlayer;
                                import net.minecraft.nbt.NBTTagCompound;
                                import net.minecraft.util.DamageSource;
                                import net.minecraft.world.World;
                                
                                public class EntityBouftonBlanc extends EntityMob
                                {
                                
                                int mobLevelGenerate=(int) Math.round((Math.random()*4+11)); // Genere un level
                                int maxHp = (int) this.getMaxHealth(); //affiche les HP max du mob
                                int hp = (int) this.getHealth(); // affiche les PV actuelle du mob (ne s'actualise pas ><)
                                static int mobLevel = 0; //level du mob)
                                
                                public String mobInfo = "Boufton Blanc"; // affiche le nom
                                public String infoHP = experienceValue + "/" + maxHp; // ça c'est juste pour voire ^^
                                public String lvl ="Level "+ mobLevel; // affiche le level
                                
                                public EntityBouftonBlanc(World par1World)
                                
                                {
                                
                                super(par1World);
                                this.tasks.addTask(1, new EntityAISwimming(this));
                                
                                /// Dit quelle level est le mob
                                switch (mobLevelGenerate)
                                {
                                case 11:
                                mobLevel = 11;
                                break;
                                case 12:
                                mobLevel = 12;
                                break;
                                case 13:
                                mobLevel = 13;
                                break;
                                case 14:
                                mobLevel = 14;
                                break;
                                case 15:
                                mobLevel = 15;
                                break;
                                default:
                                
                                }
                                
                                }
                                
                                @Override
                                protected void applyEntityAttributes()
                                {
                                
                                super.applyEntityAttributes();
                                
                                this.getEntityAttribute(SharedMonsterAttributes.followRange).setAttribute(1.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.25D);
                                this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(10000.0D);
                                
                                if (mobLevel == 11)
                                {
                                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(8.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(1.0D);
                                }
                                if (mobLevel == 12)
                                {
                                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(12.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(1.5D);
                                }
                                if (mobLevel == 13)
                                {
                                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(14.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
                                }
                                if (mobLevel == 14)
                                {
                                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(16.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
                                }
                                if (mobLevel == 15)
                                {
                                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(18.0D);
                                this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setAttribute(2.0D);
                                }
                                }
                                
                                public void writeEntityToNBT(NBTTagCompound nbtTag)
                                {
                                super.writeEntityToNBT(nbtTag);
                                nbtTag.setInteger("nom", mobLevel);
                                }
                                
                                public void readEntityFromNBT(NBTTagCompound nbtTag)
                                {
                                super.readEntityFromNBT(nbtTag);
                                mobLevel = nbtTag.getInteger("nom");
                                }
                                
                                protected void attackEntity(Entity par1Entity, float par2)
                                {
                                if (this.attackTime <= 0 && par2 < 2.0F && par1Entity.boundingBox.maxY > this.boundingBox.minY && par1Entity.boundingBox.minY < this.boundingBox.maxY)
                                {
                                this.attackTime = 30;
                                this.attackEntityAsMob(par1Entity);
                                }
                                }
                                
                                public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
                                
                                {
                                
                                if (this.isEntityInvulnerable())
                                {
                                return false;
                                }
                                else if (super.attackEntityFrom(par1DamageSource, par2))
                                {
                                Entity entity = par1DamageSource.getEntity();
                                
                                if (this.riddenByEntity != entity && this.ridingEntity != entity)
                                {
                                if (entity != this)
                                {
                                this.entityToAttack = entity;
                                
                                }
                                
                                return true;
                                }
                                else
                                {
                                return true;
                                }
                                }
                                else
                                {
                                return false;
                                }
                                }
                                
                                protected Entity findPlayerToAttack()
                                {
                                EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 0.0D);
                                return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null;
                                }
                                
                                /**
                                * Returns the sound this mob makes while it's alive.
                                */
                                protected String getLivingSound(World world, int x, int y, int z)
                                {
                                return "dofusmobs:sound.bouftou_ambiant";
                                }
                                
                                /**
                                * Returns the sound this mob makes when it is hurt.
                                */
                                protected String getHurtSound(World world, int x, int y, int z)
                                {
                                
                                return "dofusmobs:sound.bouftou_prendcoup.ogg";
                                }
                                
                                /**
                                * Returns the sound this mob makes on death.
                                * @return
                                */
                                protected String getDeathSound(World world, EntityPlayer player)
                                {
                                return "dofusmobs:sound.bouftou_meurt";
                                }
                                
                                protected String getAttackSound()
                                {
                                
                                return "dofusmobs:sound.bouftou_attaque";
                                }
                                
                                }
                                
                                

                                Voila ^^’ Désolé si c’est un peu brouillon ou mal organisé ^^’

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

                                  Donc comme dit sur la shoutbox, il faut enlever le static et il me faudrait la classe de l’event sound
                                  dofusmobs:sound.bouftou_meurt
                                  devrait être
                                  dofusmobs:bouftou_meurt
                                  Normalement; Idem pour les autres (d’ailleurs tu as encore un ogg)

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

                                    Si j’enlève les statics les stats ne se génère pas ^^’

                                    EvendSound

                                    package dofusMobs.EventSound;
                                    
                                    import net.minecraftforge.client.event.sound.SoundLoadEvent;
                                    import net.minecraftforge.event.ForgeSubscribe;
                                    
                                    public class EventSoundDofusMobs
                                    {
                                    
                                    @ForgeSubscribe
                                    public void onSound(SoundLoadEvent event)
                                    {
                                    try
                                    {
                                    event.manager.addSound("dofusmobs:bouftou_attaque.ogg");
                                    event.manager.addSound("dofusmobs:bouftou_ambiant.ogg");
                                    event.manager.addSound("dofusmobs:bouftou_meurt.ogg");
                                    event.manager.addSound("dofusmobs:bouftou_prendcoup.ogg");
                                    
                                    }
                                    catch(Exception e)
                                    {
                                    System.out.println("Failed to registry sound");
                                    }
                                    }
                                    }
                                    
                                    

                                    Oui y’a encore des .ogg car j’ai testé de multiple façon uniquement sur les 2 premières ^^

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

                                      Les .ogg dans l’event sound c’est bon, il faut les mettre c’est dans le mob que c’était pas bon.
                                      Sinon : http://pastebin.com/w8QbqNbz

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

                                        Toujours LES mêmes problèmes, aucun sons, level et stats non généré 😕

                                        EDIT : Si je remet le mobLevel en static c’est bon, mais y’a toujours le problème d’écrasement de stats…

                                        >! 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
                                        • Gugu
                                          Gugu dernière édition par

                                          Un conseil, au lieu de faire par level les if etc… fait une fonction relative.

                                          Par exemple, pour la vie tu peux faire ça si tu veux +2 hp par level :

                                          30 (hp de base) + 2*level

                                          Comme ça, pas de milliard de if, et le level peut être adapté pour faire une plus grande étendue de levels

                                          "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                                          ― Jordan B. Peterson

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

                                            Le soucis c’est que la variable de level ne se charge pas si je ne la passe pas en static :s

                                            C’est ce que j’avais essayer de faire un moment, mais toujours le soucis d’ecrasement de stat

                                            >! 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
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB