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

    Solved Couper les musiques d'origine

    Anciennes versions
    1.6.x
    3
    35
    8303
    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.
    • Axaurus
      Axaurus last edited by

      Salut
      J’ai ajouter une musique grâce à la méthode de ma neige, mais j’aimerai que cette musique reste jusqu’à la fin(car plus je m’éloigne du bloc où j’étais quand la musique est arrivé, plus elle se baisse)(Un peu comme les musiques de Minecraft), et j’aimerai aussi couper les musiques de Minecraft; car quand y’a ma propre musique, la musique de Minecraft se lance ce qui n’est pas cool
      Merci d’avance

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

        J’ai la moitié trouver(??)
        Sinon, je pourrais bloquer le son de la musique à zéro et supprimer l’option

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

          se qui faut c’est que ta musique devienne une musique d’environnement.
          (désoler je peut pas te donner de je suis pas chez moi)

          Mes tutoriels:

          >! [1.6.x] - Le kit d'outils
          >! [1.6.x] - Les recettes du four

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

            Quelqu’un sait comment faire ça?
            Désolée, je sais pas comment faire avec Forge

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

              Forge à un event pour les sons jouer, regarde dans le package net.minecraftforge.client.event.sound, il y a pas mal de PlaySound event, cherche le quel correspond aux musiques de minecraft (tu enregistre l’event et tu fais logger dans la console quand le son se lance) une fois que tu l’as trouvé, tu as juste à faire event.setCanceled(true); pour supprimer le son.

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

                Désolée, je ne trouve pas quel event correspond aux musiques de Minecraft
                Si tu peux m’aider
                PS : les fichiers sons de Minecraft ont changé en 1.6, donc les events sound aussi. Peut être pour ça
                Où alors, c’est que je ne sais pas chercher -_-

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

                  Ou peut être que si je trouve quel fichiers sont enregistrer les musiques, je pourrai faire un implements

                  Mais je ne trouve pas le fichier.

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

                    Dans ta classe eventsound :

                    @ForgeSubscribe
                    public void onSoundPlayed(PlayBackgroundMusicEvent event)
                    {
                    event.setCanceled(true);
                    }
                    

                    Le problème, c’est que la music n’est pas cancelable, donc ça fait crash
                    Le mieux sera de jouer ton son comme une musique, enfin que le jeu ne joue pas une autre musique en même temps, et qu’il soit fort par tout, donc dans l’event sound :
                    event.manager.addMusic(“modid:music”) (le son sera dans assets/modid/music/)
                    Et pour jouer le son :

                    SoundPoolEntry soundpoolentry = mc.sndManager.soundPoolMusic.getRandomSoundFromSoundPool("ta music");
                    soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
                    
                    if (soundpoolentry != null)
                    {
                    mc.sndSystem.backgroundMusic("BgMusic", soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false);
                    mc.sndSystem.setVolume("BgMusic", this.options.musicVolume);
                    mc.sndSystem.play("BgMusic");
                    }
                    

                    J’ai pas eu le temps de tester, mais ça devrait être ça.

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

                      Salut
                      Merci et désolée de ne pas avoir répondu plus tôt

                      Mes erreurs :

                      mc
                      

                      Que je fasse n’importe quoi, c’est le mot d’après qui bug.

                      rand
                      

                      Que je fasse n’importe quoi, c’est nextInt qui bug.

                      (new PlayBackgroundMusicEvent(this, soundpoolentry));
                      

                      Le problème, c’est que les 2 options pour régler cette erreur modifient les sources de Forges.

                      Merci d’avance

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

                        Oups, j’ai édité, j’ai supprimé la ligne inutile.
                        Tu as bien mit ce code dans ton tickhandler à la place du son actuelle ?

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

                          J’ai les même erreurs que tout a l’heure, juste le rand en moins.
                          Merci d’avance

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

                            Je peux avoir ton code entier du tick handler ?

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

                              package This_is_Halloween;
                              
                              import java.util.EnumSet;
                              
                              import net.minecraftforge.client.event.sound.PlayBackgroundMusicEvent;
                              import net.minecraftforge.event.ForgeSubscribe;
                              import cpw.mods.fml.common.ITickHandler;
                              import cpw.mods.fml.common.TickType;
                              
                              public class ClientTickHandler implements ITickHandler
                              {
                              @Override
                              public void tickStart(EnumSet <ticktype>type, Object… tickData)
                              {
                              
                              }
                              @ForgeSubscribe
                              public void onSoundPlayed(PlayBackgroundMusicEvent event)
                              {
                              event.setCanceled(true);
                              }
                              @Override
                              public void tickEnd(EnumSet <ticktype>type, Object... tickData)
                              {
                              SoundPoolEntry soundpoolentry = mc.sndManager.soundPoolMusic.getRandomSoundFromSoundPool("ta music");
                              soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
                              
                              if (soundpoolentry != null)
                              {
                              mc.ticksBeforeMusic = this.rand.nextInt(3060) + 3060;
                              mc.sndSystem.backgroundMusic("BgMusic", soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false);
                              mc.sndSystem.setVolume("BgMusic", this.options.musicVolume);
                              mc.sndSystem.play("BgMusic");
                              }
                              }
                              @Override
                              public EnumSet <ticktype>ticks()
                              {
                              return EnumSet.of(TickType.PLAYER);
                              }
                              
                              @Override
                              public String getLabel()
                              {
                              return "snow tick handler";
                              }
                              }
                              ```</ticktype></ticktype></ticktype>
                              1 Reply Last reply Reply Quote 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                J’ai pas dit de supprimer tout l’ancien code o_O
                                Juste le code qui jouait le son, donc world.playsound.

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

                                  Ok,
                                  j’ai des erreurs résolus, mais j’ai toujours options qui bug et

                                  (new PlayBackgroundMusicEvent(this, soundpoolentry));
                                  

                                  Et j’ai aussi une nouvelle erreur :
                                  sndSystem

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

                                    Je l’ai mis dans TickEnd

                                    Vous pensez que c’est à cause de ça?___
                                    Ou…. Je crois peut être savoir pourquoi y’a des erreurs, mais là je peux pas coder.
                                    Je vous dirai la réponse demain.

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

                                      Salut
                                      J’ai tester, non je ne vois pas où peut être l’erreur.

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

                                        J’ai recréer le code, réessayer, mais ça ne marche toujours pas
                                        Un de vous a t-il une idée svp ?

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

                                          Je vois pas, tu pourrais me renvoyez le code que tu as dans ta classe principale + ton tickhandler pour que je puisse denouveau faire des tests en local ?

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

                                            ClientTickHandler

                                            package This_is_Halloween;
                                            
                                            import java.util.EnumSet;
                                            import java.util.Random;
                                            
                                            import net.minecraft.block.Block;
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.audio.SoundPoolEntry;
                                            import net.minecraft.util.MathHelper;
                                            import net.minecraft.world.biome.BiomeGenBase;
                                            import net.minecraftforge.client.event.sound.PlayBackgroundMusicEvent;
                                            import net.minecraftforge.client.event.sound.SoundEvent;
                                            import cpw.mods.fml.client.FMLClientHandler;
                                            import cpw.mods.fml.common.ITickHandler;
                                            import cpw.mods.fml.common.TickType;
                                            
                                            public class ClientTickHandler implements ITickHandler
                                            {
                                            
                                            @Override
                                            public void tickStart(EnumSet <ticktype>type, Object… tickData)
                                            {
                                            
                                            }
                                            
                                            @Override
                                            public void tickEnd(EnumSet <ticktype>type, Object... tickData)
                                            {
                                            Minecraft mc = FMLClientHandler.instance().getClient();
                                            Random rand = mc.theWorld.rand;
                                            BiomeGenBase biome = mc.theWorld.getBiomeGenForCoords((int)mc.thePlayer.posX, (int)mc.thePlayer.posZ);
                                            
                                            if(rand.nextInt(15) > 13)
                                            {
                                            System.out.println(biome.getFloatTemperature());
                                            int i = MathHelper.floor_double(mc.thePlayer.posX);
                                            int k = MathHelper.floor_double(mc.thePlayer.posZ);
                                            int k1 = i + rand.nextInt(10) - rand.nextInt(10);
                                            int l1 = k + rand.nextInt(10) - rand.nextInt(10);
                                            int i2 = mc.theWorld.getPrecipitationHeight(k1, l1);
                                            int j2 = mc.theWorld.getBlockId(k1, i2 - 1, l1);
                                            float f1 = rand.nextFloat();
                                            float f2 = rand.nextFloat();
                                            double d0 = (double)((float)k1 + f1);
                                            double d1 = (double)((float)i2 + 0.1F) - Block.blocksList[j2].getBlockBoundsMinY();
                                            double d2 = (double)((float)l1 + f2);
                                            boolean biomeneige = biome.getFloatTemperature() == 0.05F || biome.getFloatTemperature() == 0.0F;
                                            if(mc.theWorld.isRaining() && biomeneige)
                                            {
                                            if(d1 > mc.thePlayer.posY + 1.0D && mc.theWorld.getPrecipitationHeight(MathHelper.floor_double(mc.thePlayer.posX), MathHelper.floor_double(mc.thePlayer.posZ)) > MathHelper.floor_double(mc.thePlayer.posY))
                                            {
                                            SoundPoolEntry soundpoolentry = mc.sndManager.soundPoolMusic.getRandomSoundFromSoundPool("ta music");
                                            soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
                                            
                                            if (soundpoolentry != null)
                                            {
                                            mc.ticksBeforeMusic = this.rand.nextInt(3060) + 3060;
                                            mc.sndSystem.backgroundMusic("BgMusic", soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false);
                                            mc.sndSystem.setVolume("BgMusic", this.options.musicVolume);
                                            mc.sndSystem.play("BgMusic");
                                            }}
                                            else
                                            {
                                            SoundPoolEntry soundpoolentry = mc.sndManager.soundPoolMusic.getRandomSoundFromSoundPool("ta music");
                                            soundpoolentry = SoundEvent.getResult(new PlayBackgroundMusicEvent(this, soundpoolentry));
                                            
                                            if (soundpoolentry != null)
                                            {
                                            mc.ticksBeforeMusic = this.rand.nextInt(3060) + 3060;
                                            mc.sndSystem.backgroundMusic("BgMusic", soundpoolentry.func_110457_b(), soundpoolentry.func_110458_a(), false);
                                            mc.sndSystem.setVolume("BgMusic", this.options.musicVolume);
                                            mc.sndSystem.play("BgMusic");
                                            }}
                                            }
                                            }
                                            }
                                            
                                            @Override
                                            public EnumSet <ticktype>ticks()
                                            {
                                            return EnumSet.of(TickType.PLAYER);
                                            }
                                            
                                            @Override
                                            public String getLabel()
                                            {
                                            return "snow tick handler";
                                            }
                                            
                                            }
                                            

                                            Classe principale(dans la méthode load) :

                                            TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT);
                                            ```</ticktype></ticktype></ticktype>
                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB