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

    Résolu Création d'un mod avec un backpack

    1.7.x
    1.7.10
    4
    15
    1296
    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.
    • Z
      Zoulette dernière édition par

      Bonjour, tout d’abord je tiens a m’excuser pour les premiers postes que j’ai crée qui n’etait pas bon :D, cela dit commençons.

      Tout d’abord suite a un réflexion de robin4002 sur le fait qu’il fallait que mon GuiHandler ne soit pas enrengistré seulement sur le client.
      je me demandais donc comment enrengistré autre part que sur le client.

      pour plus de facilite voici mes classes (que je teindrais a jour)

      ma classe principale
      https://pastebin.com/p0NeDSWn

      ma classe avec le GuiHandler
      https://pastebin.com/dSxrjxXt

      ma classe ItemBackpack
      https://pastebin.com/Frfc9pvH

      ma classe ItemMod
      https://pastebin.com/aXnkwcEv

      ma classe ContainerBackPack
      https://pastebin.com/VY3iKJDb

      ma classe InventoryBackPack
      https://pastebin.com/hAA7vK2H

      ma classe SlotBackPack
      https://pastebin.com/XQpZJLsn

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

        Salut,
        NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, new EmotionGuiHandler());
        devrait être :
        NetworkRegistry.INSTANCE.registerGuiHandler(instance, new EmotionGuiHandler());

        et doit être directement dans la fonction init, pas à l’intérieur du if(event.getSide().isClient())
        (et donc là ton gui handler sera enregistré correctement).

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

          Bonjour, tout d’abord merci à toi robin, je n’avais pas vu que j’etais dans le if.
          et je me demandais coment je peux interdire d’avoir 2backpack à la fois dans l’inventaire.
          je pensais faire:
          public void (ItemStack itemstack, EntityPlayer player, List list, boolean)
          {
          if (ItemStack = null)
          {
          String owner = ItemStack (“interdit”)
          list.add(EnumChatFormatting.RED + owner);
          }

          est-il possible de m’aider car je n’arrive pas à completer le code 😕

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

            /**
            * Prevents backpack-ception
            */
            @Override
            public boolean isItemValidForSlot(int index, ItemStack stack) {
            return !(stack.getItem() instanceof ItemBackPack);
            }
            

            Faudrait chercher sur le fofo, c’était mis noir sur blanc dans ce tuto : https://www.minecraftforgefrance.fr/showthread.php?tid=2197&highlight=backpack

            Oui ce gif est drôle.

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

              Bonjour, ce n’est pas de cela que je parle (tu le saurais si tu avais lu mon message comme il faut) je parle du fait d’avoir 2 backpack dans ton inventaire (pas un backpack dans un backpack)

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

                Alors je ne comprends pas vraiment le sens de la fonction que tu as faite, mais c’est qu’il faut, c’est une boucle for qui parcourt tout l’inventaire du joueur, et si un sac est rencontré ça incrément une variable. Tu peux placer ce for dans la fonction “onUpdate” ou “update” je sais plus de ton item.
                Ensuite si ta variable >= 2 tu fais quelque chose comme looter le sac au sol ou mettre un message adéquat.

                Si tu veux plus d’aide/détails fais d’abord une recherche ce sujet a déjà été traité de nombreuses fois.

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                  @‘Zoulette’:

                  Bonjour, ce n’est pas de cela que je parle (tu le saurais si tu avais lu mon message comme il faut) je parle du fait d’avoir 2 backpack dans ton inventaire (pas un backpack dans un backpack)

                  En soit quand tu dis l’inventaire, pour moi c’est l’inventaire du backpack. Du coup oui tu dois faire comme Aymeric t’as dis.

                  Oui ce gif est drôle.

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

                    Bonjou, je n’ai aucun update ou onupdate, j’ai juste OnItemRightClick

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

                      C’est normal il faut que tu l’implémentes (= ajoute), va dans la classe de l’item, commence à taper “update” et fais ctrl+space eclipse te proposera.

                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                        ReBonjour, je suis désole mais la depuis tout a lh’eur je cherche comment faire, donc j’ai creer ma boucle for et je cherche sur tous le forum pour check l’inventaire mais je trouve absolument rien Oo

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

                          Pour parcourir l’inventaire du player ca doit être assez simple, personnellement je fais comme ceci pour l’inventaire de mes propres blockContainer 🙂

                          
                                 for(int i = 0; i < player.inventory.getSizeInventory(); i++) //Boucle ou l'on crée une variable i qui représente les slots de l'inventaire du joueur
                                  {
                                   if(player.inventory.getStackInSlot(i) != null) //Si le slot n'est pas null alors on passe au prochain
                                    {
                                     if(player.inventory.getStackInSlot(i).getItem() instanceof TonItemBackPack) //Si l'item dans le slot est l'instance de ton item alors tu exécutes quelque chose
                                     {
                                        /* Ce que tu dois éxécuter */
                                     }
                                    }
                                   }
                          
                          

                          C’est une piste il faut améliorer.

                          Oui ce gif est drôle.

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

                            Merci, j’y vois un peu plus clair, malgré tout quelque chose reste obscurs Oo c’est le player.inventory
                            tu as créer une class player?

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

                              Re ! Donc j’ai demander à Robin (grand merci à lui de m’avoir éclairer :p)

                              Mais effectivement comme il me l’as dit il est préférable de passer par l’évent PlayerTickEvent car avec le OnUpdate côté client il pourra être contourné du coup c’est préférable de passer ça côté serveur je te conseille ce tutoriel pour te créer une classe Event (https://www.minecraftforgefrance.fr/showthread.php?tid=4207) et ensuite y ajouter cet event

                              
                              @SubscribeEvent
                              public void tickEvent(PlayerTickEvent event)
                              {
                              EntityPlayer player = event.player; //Tu récupères le player par l'event
                              if(player.inventory.hasItem(TonItem)) //Pour finir BrokenSwing (merci :p) m'a parler d'un fonction qui existe pour vérifier si le joueur à l'item, donc tu remplaces "TonItem" par ton item x)  
                                  {  
                                  }
                              }
                              
                              

                              Oui ce gif est drôle.

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

                                Re ! Donc j’ai demander à Robin (grand merci à lui de m’avoir éclairer :p)

                                Mais effectivement comme il me l’as dit il est préférable de passer par l’évent PlayerTickEvent car avec le OnUpdate côté client il pourra être contourné du coup c’est préférable de passer ça côté serveur je te conseille ce tutoriel pour te créer une classe Event (https://www.minecraftforgefrance.fr/showthread.php?tid=4207) et ensuite y ajouter cet event

                                
                                @SubscribeEvent
                                public void tickEvent(PlayerTickEvent event)
                                {
                                EntityPlayer player = event.player; //Tu récupères le player par l'event
                                if(player.inventory.hasItemStack(new ItemStack(TonItem))) //Pour finir BrokenSwing (merci :p) m'a parler d'un fonction qui existe pour vérifier si le joueur à l'item, donc tu remplaces "TonItem" par ton item x)  
                                    {  
                                    }
                                }
                                
                                

                                Oui ce gif est drôle.

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

                                  j’ai un petit problème, j’ai utilisé ton code (merci au passage) mais rien ne se passe.
                                  https://pastebin.com/cqMxBgmi

                                  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