MFF

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

    Jouer un son après qu'il soit finis

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.6.2
    13 Messages 5 Publieurs 4.0k 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.
    • AxaurusA Hors-ligne
      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
      • jglrxavpokJ Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • AxaurusA Hors-ligne
            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
            • AmaA Hors-ligne
              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
              • robin4002R Hors-ligne
                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
                • AxaurusA Hors-ligne
                  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
                  • robin4002R Hors-ligne
                    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
                    • ZakZ Hors-ligne
                      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
                      • AxaurusA Hors-ligne
                        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
                        • robin4002R Hors-ligne
                          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
                          • AxaurusA Hors-ligne
                            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
                            • robin4002R Hors-ligne
                              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
                              ContactMentions Légales

                              MINECRAFT FORGE FRANCE © 2024

                              Powered by NodeBB