MFF

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

    Connaitre le contenu d'un slot, d'un inventaire player custom

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    33 Messages 6 Publieurs 6.8k Vues 1 Abonné
    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.
    • isadorI Hors-ligne
      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
      • sosohS Hors-ligne
        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
        • isadorI Hors-ligne
          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
          • sosohS Hors-ligne
            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
            • isadorI Hors-ligne
              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
              • sosohS Hors-ligne
                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
                • isadorI Hors-ligne
                  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
                  • sosohS Hors-ligne
                    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
                    • RedRelayR Hors-ligne
                      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
                      • sosohS Hors-ligne
                        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
                        • SCAREXS Hors-ligne
                          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
                          • sosohS Hors-ligne
                            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
                            • SCAREXS Hors-ligne
                              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
                              • sosohS Hors-ligne
                                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
                                • SCAREXS Hors-ligne
                                  SCAREX
                                  dernière édition par

                                  @‘sosoh’:

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

                                  vas-y, personnellement j’ai réussi à le faire fonctionner avec ça :

                                  
                                  @SubscribeEvent
                                  public void onPlayerTickEvent(PlayerTickEvent event) {
                                  if (event.phase == Phase.START) {
                                  ItemStack stack = event.player.inventory.getStackInSlot(19);
                                  if (stack != null && stack.getItem() == Items.cookie) event.player.setAbsorptionAmount(1.0F);
                                  }
                                  }
                                  
                                  

                                  NOTE : il faut utiliser FMLCommonHandler.instance().bus().register(new ClasseOuSeTrouveTonEvent()) pour l’enregistrer et non MinecraftForge.EVENT_BUS.register(new ClasseDeTonEvent())

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

                                    toi ca marche car c’est l’inventory de base, la c’est un custom, et je me demandais: avec l’inventaire de base tu dois faire event.player.inventory moi je fais directement minefusInventory, peut qu’il ne sait pas quel joueur check ? mais je ne saurais pas lui dire quel joueur check

                                    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
                                    • robin4002R Hors-ligne
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                      dernière édition par

                                      Heu ?
                                      Attends, on reprend depuis 0.
                                      Explique ce qui tu cherches à faire exactement et envoie toutes les classes en rapport avec.

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

                                        Donc, je travaille sur un mod qui rajoute un nouvel inventaire capable d’accueillir l’équipement de base mais aussi des anneaux, amulettes etc… Je souhaites que lorsque le joueur porte une nouvelle armure et l’amulette de cette armure ca donne un bonus. Donc je cherche à connaitre le contenu de mon slot à amulette, le slot 19 de mon Gui Container Custom. J’ai donc essayé avec les codes ci-dessus, mais en vain. Tu souhaites quelles classes ? Je peux t’envoyer mon dossier source si tu le souhaites.

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

                                          Le problème que je vois ici c’est que (surement) ta fonction minefusInventory.getStackInSlot est statique et donc ne peut être appelée pour un joueur particulier.

                                          EDIT : il n’est pas statique mais il est dans ta classe d’events, ce que tu dois faire c’est récupérer l’instance du minefusInventory en fonction du joueur. D’après ce que j’ai vu, tu utilises le extended properties, il te faut donc faire quelque chose comme new MinefusInventoryPlayer(player, stack[], etc.)

                                          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
                                          • robin4002R Hors-ligne
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                            dernière édition par

                                            D’accord, donc si je comprends bien tu veux ajouter des slots à l’inventaire de l’item ? Et tu as fait quoi jusqu’ici ?
                                            Car si c’est ce que tu veux faire, il te faut un custom entity properties

                                            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