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

    Résolu Connaitre le contenu d'un slot, d'un inventaire player custom

    1.7.x
    1.7.10
    6
    33
    5856
    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.
    • sosoh
      sosoh dernière édition par

      Salut, j’ai créé mon inventaire custom, qui rajoute des slots pour des nouveaux équipements, et je cherche à détecter le contenu d’un slot mais je sais pas comment faire, j’ai fais ca pour l’instant. Apres je souhaites appliquer un bonus si le joueur a certains item:

      
      MinefusInventoryPlayer minefusInventory = new MinefusInventoryPlayer();
      
      ItemStack amulette = minefusInventory.getStackInSlot(19);
      
      if(amulette != null && amulette.getItem() == ModDofusStuffs.StuffAmuletteBouftou)
      
      {
      //effet sur le player
      }
      

      Mais ca ne marche pas…

      Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par

        tu as un fonction getItemInSlot je crois

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

          @‘sosoh’:

          Salut, j’ai créé mon inventaire custom, qui rajoute des slots pour des nouveaux équipements, et je cherche à détecter le contenu d’un slot mais je sais pas comment faire, j’ai fais ca pour l’instant. Apres je souhaites appliquer un bonus si le joueur a certains item:

          
          MinefusInventoryPlayer minefusInventory = new MinefusInventoryPlayer();
          
          ItemStack amulette = minefusInventory.getStackInSlot(19);
          
          if(amulette != null && amulette.getItem() == ModDofusStuffs.StuffAmuletteBouftou)
          
          {
          //effet sur le player
          }
          

          Mais ca ne marche pas…

          tu peux aussi faire çà :

          
          if (player.inventory.hasItem(ModDofusStuffs.StuffAmuletteBouftou) {
          //ton code
          }
          
          

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Mais non car ne veux que ca soit quand l’item est dans le un slot spécifique et en plus le slot c’est pas player.inventory mais mon container a moi

            Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

            1 réponse Dernière réponse Répondre Citer 0
            • isador
              isador Moddeurs confirmés Modérateurs dernière édition par

              tu as une methode genre getItemInSlot?

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

                Non il faut faire getStackInSlot(SlotId).getItem() .

                Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                1 réponse Dernière réponse Répondre Citer 0
                • isador
                  isador Moddeurs confirmés Modérateurs dernière édition par

                  voila bha tu as le truc qu’il te faut

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

                    Oui, mais ca ne marche pas, ca ne detecte rien…

                    Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                    1 réponse Dernière réponse Répondre Citer 0
                    • isador
                      isador Moddeurs confirmés Modérateurs dernière édition par

                      faut un system.out.println de ton itemStack amulette

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

                        J’ai fait et rien ne se passe

                        Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                        1 réponse Dernière réponse Répondre Citer 0
                        • isador
                          isador Moddeurs confirmés Modérateurs dernière édition par

                          il te marque quoi? null?

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

                            Beh non il ne marque rien… Il ne détecte pas si il y a un truc dans le slot 19 de mon inventaire…

                            Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                            1 réponse Dernière réponse Répondre Citer 0
                            • isador
                              isador Moddeurs confirmés Modérateurs dernière édition par

                              alors tu as un problème codé serveur je pense, il doit pas considérer tes nouveau slots comme existant

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

                                C’est en solo que j’ai testé

                                Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                  J’ai pas ta réponse, mais je vais faire un ajout hors sujet : Si tu compte faire un effet différent pour chaque amulette, je te conseil de mettre ton code liée a l’effet dans la classe de l’amulette, sinon ça va vite être le bordel dans ton code. Tu crée un interface Amulette qui possède une methode effet() par exemple, puis lors de chaque tick (ou autre, ça depend de ce que tu veux faire), tu appel la methode effet() si l’object dans le slot de l’amulette est différent de null.

                                  La je parle pour l’amulette, mais tu peux faire encore plus général et faire une interface pour tes items customs.

                                  –------------------------------------------------------------------------------------
                                  Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

                                    En fait c’est un système de bonus: quand on porte un item d’une panoplie, ca augmente le bonus de 1, quand le bonus est 6, ça fait des effets bonus ^^ merci pour ta réponse meme si elle ne m’aide pas, actuellement ce code n’est pas dans un évent mais dans une class qui regroupe le reste de l’armure… Peut être que je dois passer par un évent ?

                                    Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                      @‘sosoh’:

                                      Beh non il ne marque rien… Il ne détecte pas si il y a un truc dans le slot 19 de mon inventaire…

                                      Si ça affiche null, regarde doù vient le null, du slot, de l’item ou de l’itemStack. si ça n’affiche vraiment rien ça veut dire que ta méthode n’est pas appellée.

                                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                                      Pas de demandes de support par MP ni par skype SVP.
                                      Je n'accepte sur skype que l…

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

                                        Salut, rien ne s’affiche j’ai donc fait ca dans mon event handler mais ca ne marche toujours pas 😞

                                        ​@SubscribeEvent
                                        
                                        public void onLivingUpdateEvent(LivingUpdateEvent event)
                                        {
                                        if (event.entity instanceof EntityPlayer)
                                        {
                                        EntityPlayer player = (EntityPlayer) event.entity;
                                        ItemStack amulette = minefusInventory.getStackInSlot(19);
                                        if(amulette != null && amulette.getItem() == ModDofusStuffs.StuffAmuletteBouftou)
                                        {
                                        player.setAbsorptionAmount(1);
                                        System.out.println("Ca marche amulette!");
                                        }
                                        }
                                        }
                                        

                                        Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                          @‘sosoh’:

                                          Salut, rien ne s’affiche j’ai donc fait ca dans mon event handler mais ca ne marche toujours pas 😞

                                          ​@SubscribeEvent
                                          
                                          public void onLivingUpdateEvent(LivingUpdateEvent event)
                                          {
                                          if (event.entity instanceof EntityPlayer)
                                          {
                                          EntityPlayer player = (EntityPlayer) event.entity;
                                          ItemStack amulette = minefusInventory.getStackInSlot(19);
                                          if(amulette != null && amulette.getItem() == ModDofusStuffs.StuffAmuletteBouftou)
                                          {
                                          player.setAbsorptionAmount(1);
                                          System.out.println("Ca marche amulette!");
                                          }
                                          }
                                          }
                                          

                                          Utilise plutôt le tick event du player et tout devrait fonctionner car actuellement tu utilise un event très général et qui ne se met à jour que dans certains cas et qui n’est pas spécifique aux joueurs.

                                          EDIT :
                                          Et puis, d’où vient le minefusInventory.getStackInSlot(19) ?? Que fait cette fonction, je la trouve bizarre car tu ne lui donnes pas le joueur ni de tile entity.

                                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                                          Pas de demandes de support par MP ni par skype SVP.
                                          Je n'accepte sur skype que l…

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

                                            Ca ne marche pas, je pense que ca vient de mon inventaire custom tu saurais m’aider si je t’envoie mes class ?

                                            Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB