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

    Je crée de la nourriture périssable dans le temps, un seul détails coince (help)

    Sans suite
    1.7.10
    4
    14
    2244
    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.
    • H
      hakneb dernière édition par

      Alors voila je crée de la nourriture périssable dans mon Mod et je me heurt a un seul pb c’est que une fois que ma “viande” est périmé l’item ne se delete pas

      sur la photo a gauche l’item est périmé a max mais il n’est pas delete et a droite c’est encore en cours.( voir miniature en bas)

      aux niveau du code j’ai simplifier pour l’instant sans la gestion du temps exacte car c’est second.

      
      public class itemFood extends ItemFood
      {
      
      public itemFood(int p_i45340_1_, boolean p_i45340_2_) {
      super(p_i45340_1_, p_i45340_2_);
      this.setMaxDamage(20);
      }
      
      public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
      {
      if(stack.getItemDamage() == 20)
      {
      stack.maxStackSize = 1;
      }else if(stack.getItemDamage() < 20 ){
      stack.setItemDamage(stack.getItemDamage() +1);
      }else{
      stack.setItemDamage(0);
      }
      
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • Snowy_1803
        Snowy_1803 dernière édition par

        Et c’est où que tu le supprimes ?
        Mets stack = null;
        Là, tu mets le nombre d’items maximum du stack à 1.
        Et puis lis la convention Java, trop de gens ne la respectent pas 😞

        Moddeur 1.8

        Développeur Java

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

          Il faut mettre l’item sur null. par4 est l’emplacement dans l’inventaire il me semble.
          tu check si entity est d’instanceof EntityPlayer si oui tu récup l’inventaire et tu fais un setStackInSlot(par4, null):

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

            merci pour vos réponse à tous les deux, j’ai testé au mieux se que vous m’avais dit mais sa ne marche toujours pas : la c’est un exemple de se que j’ai essayer sans avoir d’erreur. j’ai toujours l’item dans mon inventaire.

            public class itemFood extends ItemFood
            {
            
            public itemFood(int p_i45340_1_, boolean p_i45340_2_) {
            super(p_i45340_1_, p_i45340_2_);
            this.setMaxDamage(20);
            this.setMaxStackSize(16);
            }
            
            public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
            {
            if(stack.getItemDamage() == 20)
            {
            stack = null;
            }else if(stack.getItemDamage() < 20 ){
            
            stack.setItemDamage(stack.getItemDamage() +1);
            
            }else if(entity instanceof EntityPlayer) {
            ((EntityPlayer)entity).inventory.setInventorySlotContents(0, null);
            
            //stack.setItemDamage(0);
            
            }
            
            }
            }
            
            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              ((EntityPlayer)entity).inventory.setInventorySlotContents(0, null);
              ->
              ((EntityPlayer)entity).inventory.setInventorySlotContents(par4, null);

              J’aime quand on m’écoute.
              @‘robin4002’:

              Il faut mettre l’item sur null. par4 est l’emplacement dans l’inventaire il me semble.
              tu check si entity est d’instanceof EntityPlayer si oui tu récup l’inventaire et tu fais un setStackInSlot(par4, null):

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

                Le code de Robin tu le mets à la place du mien, car apparement cela ne fonctionne pas…

                Moddeur 1.8

                Développeur Java

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

                  @‘robin4002’:

                  ((EntityPlayer)entity).inventory.setInventorySlotContents(0, null);
                  ->
                  ((EntityPlayer)entity).inventory.setInventorySlotContents(par4, null);

                  J’aime quand on m’écoute.
                  @‘robin4002’:

                  Il faut mettre l’item sur null. par4 est l’emplacement dans l’inventaire il me semble.
                  tu check si entity est d’instanceof EntityPlayer si oui tu récup l’inventaire et tu fais un setStackInSlot(par4, null):

                  Lol tkt j’ai essayer aussi, franchement j’ai fait un max de truc différent sa marche toujours pas 😉

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

                    Étrange 😕

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

                      [résolue] j’ai trouver les gars et quand je vois la  réponse lol pourquoi parfois je cherche compliqué ?       . Merci 🙂

                      Le seul problème et bien sur les coffres ou il n’y a pas de update

                      
                      public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
                      {
                       if(stack.getItemDamage() < 20 ){
                      
                      stack.setItemDamage(stack.getItemDamage() +1);
                      
                      }
                      else 
                       {
                      ((EntityPlayer)entity).inventory.consumeInventoryItem(this);
                      
                      }
                      }
                      }
                      
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREX
                        SCAREX dernière édition par

                        Le seul moyen que tu as pour le faire dans les coffres c’est de ticker la tileEntity mais je sais pas trop si c’est possible facilement, regarde s’il n’y a pas un événement pour ça

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

                          TickEvent.WorldTickEvent
                          Dans la classe world il y a la liste de tous les tile entité chargé -> tu check si c’est instanceof IInventory si c’est le cas tu parcours tous les items.

                          Mais ça va être lourd, très lourd.

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

                            Pour alléger tu peux demander à l’utilisateur de ne poser les items que dans certains containers customs, ex : créer un placard spécial pour les aliments et empêcher le joueur de poser l’item dans autre chose

                            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
                            • H
                              hakneb dernière édition par

                              oue je vais faire sa, je pense créer un congélateur pour toute les viandes et implanter aussi un T en bois pour la faire sécher type jerky beef. pour le coffre de base je vais le régler sa avec un move item stack event ( cancelled).
                              Désolé pour la rep tardive je bosser sur l’élevage et implementation de genre male/femelle et d’un pregnancy delay (finit d’ailleurs).
                              Merci pour vos rep 😉

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

                                Ce que tu peux faire sinon c’est stocker dans les nbt le moment où l’item est crées et ensuite générer la barre de pourrissage en fonction de ce moment, ce qui signifie que peu importe que l’objet soit dans un coffre ou non, il pourrira quand même et le serveur ne sera pas surchargé

                                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
                                • 1 / 1
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                Contact / Mentions Légales

                                MINECRAFT FORGE FRANCE © 2018

                                Powered by NodeBB