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

    Jouer un son après qu'il soit finis

    Sans suite
    1.6.2
    5
    13
    3797
    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.
    • Axaurus
      Axaurus dernière édition par

      Salut
      J’ai un problème pour mon son quand il neige (quoi ?!! Encore ? 😉 )
      En fait, j’aimerai que ce son ce joue une fois qu’il a finit de jouer, sans mettre de timer
      Mon code :

      package This_is_Christmas;
      
      import java.util.EnumSet;
      import java.util.Random;
      
      import net.minecraft.block.Block;
      import net.minecraft.client.Minecraft;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.biome.BiomeGenBase;
      import cpw.mods.fml.client.FMLClientHandler;
      import cpw.mods.fml.common.ITickHandler;
      import cpw.mods.fml.common.TickType;
      
      public class ClientTickHandler implements ITickHandler
      {
      Minecraft instance = Minecraft.getMinecraft(); // Vieille méthode, je sais pas si elle marche encore
      boolean isPlaying = instance.sndManager.sndSystem.playing("christmas:snow.ogg");
      @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);
      System.out.println(isPlaying);
      if(isPlaying = false)
      {
      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))
      {
      mc.theWorld.playSound(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, "christmas:snow", 0.1F, 0.5F, false);
      }
      else
      {
      mc.theWorld.playSound(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, "christmas:snow", 0.2F, 1.0F, false);
      }
      }
      }
      }
      
      @Override
      public EnumSet <ticktype>ticks()
      {
      return EnumSet.of(TickType.PLAYER);
      }
      
      @Override
      public String getLabel() {
      // TODO Auto-generated method stub
      return null;
      }
      
      }
      

      Mais j’ai ajouter :

      boolean isPlaying = instance.sndManager.sndSystem.playing("christmas:snow.ogg");
      if(isPlaying = false)
      

      Donc logiquement, ça joue le son uniquement quand il n’y en as pas. Mais non, ça ne fait rien
      Du coup, j’ai cru que ça as une autre logique, et j’ai essayer de mettre true à la place de false : ça joue le son à chaque fois.

      Donc si vous avez une petite idée

      Merci d’avance</ticktype></ticktype></ticktype>

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

        Mets deux “=” quand tu veux vérifier une condition ^^

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

          ou juste if(!isPlaying)
          Et sinon tu es sur du .ogg ?

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

            J’ai essayer vos deux solutions, et aucune ne marche 😞
            Sinon, oui je suis sur du .ogg

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

              Cela peut paraître stupide mais je te conseille lors de ta conversion .mp3 en .ogg ou .wav en .ogg ou autre peu importe d’utiliser Audacity car Format Factory (si tu l’utilise) fait des siennes ! Voilà pour “l’astuce” ^^

              Cette astuce est obsolète si le son est déjà en .ogg bien-sûr !

              Si je t'ai filé un coup de main n'oublie pas le + / -
              Par contre évite les demandes d'aides en MP, tu sera sympa'

              La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

              Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                @‘Axaurus’:

                J’ai essayer vos deux solutions, et aucune ne marche 😞
                Sinon, oui je suis sur du .ogg

                Non, je parlais de :

                boolean isPlaying = instance.sndManager.sndSystem.playing("christmas:snow%(#FF0000)[.ogg]");
                

                J’ai oublié l’accent sur le u de sûr.
                Je pense que c’est plutôt

                boolean isPlaying = instance.sndManager.sndSystem.playing("christmas:snow");
                

                puisque dans le jeu, le nom sans le .ogg.

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

                  Non, désolée ça ne marche pas
                  J’ai mis :

                  boolean isPlaying = instance.sndManager.sndSystem.playing("christmas:snow");
                  

                  et

                  if(!isPlaying)
                  

                  Et c’est pareil : ça joue le son comme avant(ça se lance à chaque fois)

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

                    Au pire utilise les event sound de forge.

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

                      Un petit System.out.println de isPlaying ne ferai pas de mal 😉

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

                        @‘robin4002’:

                        Au pire utilise les event sound de forge.

                        Je ne vois pas c’est quelle event

                        @‘TheCreeper999’:

                        Un petit System.out.println de isPlaying ne ferai pas de mal 😉

                        Je l’ai déjà fait, et à chaque fois ça me marque false, comme si le son ne se jouait jamais, alors qu’il se joue

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

                          Ha en effet, j’ai parlé trop vite, il y a que un event pour sound play, mais pas pour sound stop.

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

                            ???
                            Désolée "d’être " un boulet, mais je ne trouve pas

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

                              Je disais juste qu’il n’y a pas d’event pour quand le son arrête d’être joué, contrairement à ce que je croyais.

                              Du coup je vois pas de solution 😕

                              1 réponse Dernière réponse Répondre Citer 0
                              • 1 / 1
                              • Premier message
                                Dernier message
                              Design by Woryk
                              Contact / Mentions Légales

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB