MFF

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

    Modifier le nombre de ticks de la journée et de la nuit

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.6.2
    26 Messages 8 Publieurs 11.3k 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

      @‘jglrxavpok’:

      Dans WorldInfo.java, tu devrais avoir ceci:

      private long worldTime;
      

      Avec la réflexion (Java, pas de ton cerveau… quoi qu’il faut bien l’utiliser ici ^^'), tu devrais pouvoir détecter si c’est la nuit ou le jour et accélérer/ralentir artificiellement le temps du monde

      Salut
      Merci, mais je ne peux pas(enfin……, je ne pense pas)
      Car, chaque “truc”(pas explicite) est dans Minecraft.java
      Par exemple :

      ObfuscationReflectionHelper.setPrivateValue(SoundManager.class, mc.sndManager, 999999999, "ticksBeforeMusic", "");
      

      Ici, sndManager est dans le fichier Minecraft.java

      J’ai donc chercher le worldinfo, mais il n’y a pas

      Donc si vous pouvez m’aider, merci d’avance

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

        Chaque “truc” est dans Minecraft.java…

        Minecraft est looooooooooooooooooooooooooooooooooooooooooooooooin d’avoir une seule classe qui dirige tout (parce que Notch/Dinner bone/jeb_ savent coder un minimum). Et WorldInfo est dans les instances de World 😉

        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
        • AxaurusA Hors-ligne
          Axaurus
          dernière édition par

          Salut
          Donc logiquement, dans la reflection de Forge, il devrait y avoir un truc en rapport avec worldinfo quand je met world et que je met un point après.
          Mais quand je met le point, le seul truc que ça met, c’est MAX_ENTITY_RADIUS
          J’ai donc marquer worldclient après le point, mais ils me disent de le mettre en public(je le fait juste pour tester). Mais une fois que je l’ai mis en public, ils me disent que ce field n’existe pas.
          Donc du coup, je suis bloquer

          Voilà la ligne :

          ObfuscationReflectionHelper.setPrivateValue(WorldInfo.class, World., 0, "ceci_n'est_pas_un_field", "");
          
          
          1 réponse Dernière réponse Répondre Citer 0
          • jglrxavpokJ Hors-ligne
            jglrxavpok Modérateurs
            dernière édition par

            Ne jamais, au grand JAMAIS, modifier le code source de Minecraft si tu utilises Forge, autant coder en Vanilla sinon.
            De plus, le field worldInfo EXISTE dans World. Je suis pas sûr-sûr que tu connaisses vraiment le principe de la POO (& de la réflexivité.)
            Et il faut que tu ais une instance (variable) de World.

            Ce forum n’étant pas un forum d’apprentissage du java, donc je te redirige donc vers OpenClassroom (anciennement siteduzero.com😞
            http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-java

            Ah aussi, je sens que je vais le répéter, le re-répéter et le re-re-répéter sur le forum… Mais Java est sensible à la casse! wordInfo n’a rien à voir avec worldinfo ou WorldInfo (pareil WORLDINFO).

            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
            • AxaurusA Hors-ligne
              Axaurus
              dernière édition par

              J’ai trouver avec la reflection.
              Mais le problème, c’est que quand je met ça :

              if(mc.theWorld.getWorldTime() == 600)
              {
              ObfuscationReflectionHelper.setPrivateValue(WorldInfo.class, mc.theWorld.getWorldInfo(), 15000, "worldTime", "");
              }
              

              en jeu, quand c’est à 600 ticks, ça met à 15000 ticks; mais ça remet à 601 ticks juste après.

              Donc je ne sais pas comment faire.
              Logiquement, ça reste la nuit(à partir de 15000 ticks) et bah non

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

                Peut être une ligne à mettre pour que ça reste à l’heure que j’ai dit

                1 réponse Dernière réponse Répondre Citer 0
                • kevin_68K Hors-ligne
                  kevin_68 Moddeurs confirmés
                  dernière édition par

                  Aucune idées, mais je vais regarder de mon coté.
                  Il faudrait faire que si le tick est entre 600 et 15000 il le mette a 15000+(x-600)
                  x = nombre de tick actuel, mais cela risque de crée un décalage.___Essaie avec un NBTTag:

                  
                  NBTTagCompound nbtTag = new NBTTagCompound();
                  nbtTag.setLong("Time", 15000);
                  


                  Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

                    Salut
                    Merci de ta réponse, mais …
                    Voilà le code :

                    if(mc.theWorld.getWorldTime() == 600)
                    {
                    NBTTagCompound nbtTag = new NBTTagCompound();
                    nbtTag.setLong("Time", 15000);
                    }
                    

                    J’ai tester et ça n’a pas marcher. J’ai donc tester de mettre “worldTime” au lieu de “Time” : ça n’a pas marché.
                    J’ai tester de mettre ce code avec l’obfuscation de forge(que vous pouvez retrouver à la page 2) : ça n’a pas marché.

                    Donc si quelqu’un à une idée…
                    Merci d’avance

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

                      Personne ne sait ?
                      Sinon, ce n’est pas grave je ne modifierai pas le jour et la nuit

                      1 réponse Dernière réponse Répondre Citer 0
                      • Superloup10S Hors-ligne
                        Superloup10 Modérateurs
                        dernière édition par

                        Sinon regarde comment la boussole et le capteur de soleil détectent les changements d’heure.

                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB