MFF

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

    Enlever une keybind

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    25 Messages 2 Publieurs 2.8k 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.
    • P Hors-ligne
      PotTime
      dernière édition par

      Merci d’avoir donné ce code, je vais éssayer de le comprendre ;D


      Ah, une seule erreur que je trouve dans le code ou une erreur de ma part, je vois EventHandler_Keyboard
      Cela n’existe pas pourtant x)

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

        J’ai commis une petite erreur, je pense. Tu n’as pas besoin de redéfinir toute l’array au début, mais dans ce cas, à la ligne :
        arrayToReplace = ArrayUtils.removeElement(arrayToReplace, guiKeyToRemove);
        Tu remplaceras par :
        arrayToReplace = ArrayUtils.removeElement(mc.gameSettings.keyBindings, guiKeyToRemove);

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

          Il est possible de simplifier le code ?
          Il est quand même très long x)

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

            Je reconnais. Tu peux sinon empêcher le rendu de otn keybind en customisant le GuiControls, avec event et tout le tralala, et ainsi éviter de retirer le keybind des données, avec un nombre de lignes qui te paraîent trop conséquent. Perso, je ne trouve pas que cette seconde solution soit + facile.

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

              Bon,
              Sans trop en demander est-ce que il serait possible que tu me fasses un code comme celui de au dessus mais en plus “récent”.

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

                Ca veut dire quoi en + récent ?
                Il date déjà de la 1.7.10, je ne vois pas comment faire + récent.

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

                  Bas en refaire un pour moi 🙂
                  Et j’ai détecter une petite érreur ;
                  EventHandler_Keyboard.key_Menu;
                  ça n’existe pas EventHandler_Keyboard 😮

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

                    Le nom de ma variable veut tout dire : guiKeyToRemove .
                    Tu dois changer son ancienne valeur, par ton keybind à virer.

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

                      Certe, mais pourquoi EventHandler_Keyboard.key_Menu;


                      ça existe pas


                      Ah nan, jcrois savoir

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

                        Il s’agit d’une classe que j’avais créée, normal que tu ne la possède pas…
                        Désormais, il faut que tu renseignes ta variable KeyBinding que tu souhaites virer quand le bouton est cliqué.
                        EDIT = La solution avec le moins de risques, est celle d’ouvrir un custom GuiControls, plutôt que de retirer des éléments. Fais ce que tu veux, mais je sens que tu vas galérer avec la première méthode, surtout si tu as un lourd modpack…

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

                          Ok, je vais faire un CustomGuiControls 😄


                          Je te tiens au courant, je laisse la discution ouverte.

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

                            D’acc, tu as fait le bon choix selon moi.
                            Du coup tu feras à la manière du custom GuiMainMenu avec l’event GuiOpenEvent
                            Tu te rendras alors vite compte que tu devras créer une nouvelle classe fille de GuiKeyBindingList, et réécrire la méthode drawScreen pour ne pas dessiner ton keybinding si ton bouton a déjà été cliqué. Du coup faut également stocker un boolean quelque part.

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

                              Tu peux me dire si se que je que je fais c’est bien ;
                              J’ai copier les class KeyBinding et GameSettings via le code source de Forge et je l’ai mis dans un package que j’ai créer se nommant : fr.pottime.controls
                              J’ai mis les 2 fichier source et dans GameSettings j’ai rajouter ma KeyBinding et là je suis en train de faire se qui faut pour que lorsque que j’appuis sur le bouton la touche se supprime.

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

                                Non, ce n’est pas correct. Tu dois recréer le GuiControls avec une nouvelle classe héritant de GuiKeyBindingList, comme l’indique mon message précédent.
                                Ca ne sert à rien de copier-coller des classes déjà existantes. Les tiennes ne seront pas load à la place de celles de mojang.

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

                                  Ok, donc tu me dis si se que j’ai fait c’est bon,
                                  J’ai créer un nouveau package et dedans j’ai mis le GuiControls,
                                  j’ai fait un extends GuiKeyBindingList

                                  et dedans il y a ;

                                  
                                  public GuiControls(net.minecraft.client.gui.GuiControls p_i45031_1_, Minecraft p_i45031_2_) {
                                  super(p_i45031_1_, p_i45031_2_);
                                  
                                  }
                                  
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • DeletedD Hors-ligne
                                    Deleted
                                    dernière édition par

                                    Non, ce que tu fais n’a aucun sens.

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

                                      Ok, sinon dans le pire des cas, je peux faire quelque chose qui fait que la keybind est invisible dans les controles ?

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

                                        Oui, en redessinant la GuiKeyBindingList en faisant un override de drawScreen. Donc en suivant ma seconde méthode, tu peux facilement y arriver.

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

                                          C’est à dire en redessinant, refaire ?

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

                                            Redessiner car la boucle for dans la méthode drawScreen parcours tous les Keybinds, du coup, si tu veux éviter le rendu du tien, faudra rajouter une condition pour check qu’il ne s’agit pas du tien.

                                            PS = Fais un peu attention à tes remarques, notamment sur ma réputation. Si je m’exprime mal, tu peux venir me le dire en message, mais me mettre -4, ça me donne juste envie de te laisser te démerder tout seul. Et puis crois moi que j’ai eu beaucoup de patience avec tes erreurs de débutants…

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB