MFF

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

    Par1ItemStack.stackSize; a une dysfonctionnement

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.2
    25 Messages 5 Publieurs 5.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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Salut,

      if(player.getCurrentEquippedItem().stackSize == 0)
      {
      entityplayer.destroyCurrentEquippedItem();
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • P Hors-ligne
        Portuar
        dernière édition par

        non le même problème l’item ne se consume pas tout de suite.

        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

          player.getCurrentEquippedItem().damageItem(1, player);
          ?
          Si c’est toujours pas bon, envoie toute la classe.

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

            /**
            * Called when a player hits the block. Args: world, x, y, z, player
            */
            public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player)
            {
            ItemStack stack = player.getCurrentEquippedItem();
            TileEntityDecondenseur te = (TileEntityDecondenseur)world.getTileEntity(x, y, z);
            
            if(!world.isRemote && te.isUse == false)
            {
            if ((stack != null) && ((stack.getItem() instanceof ItemCatalystPig)))
            {
            te.isUse = true;
            te.itemId = 1;
            
            player.getCurrentEquippedItem().damageItem(1, player);
            
            }
            }
            }
            

            Voila mais bon je pense pas que sa va changé grand chose.

            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

              Enlève le if(!world.isRemote)

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

                non sa fais tout beugé ^^'.

                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

                  Remplace player.getCurrentEquippedItem() par stack pour un soucis d’optimisation.
                  À mon avis le serveur sait que l’item doit être retiré, mais pas le client. Et quand tu tape ça syncro. Donc ça le consume en client.
                  Le problème est surement au niveau de la condition te.isUse == false, essaye de la retirer et regarde si ça fonctionne.
                  Si oui, envoie le code de ton tile entity. Sinon, je sais pas trop x)

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

                    ok je vais essayer!


                    Non sa ne marche pas bon autant exposer un autre problème ^^', alors voila je voudrais que mon item s’anime si mon boolean est true et ce boolean c’est is.use mais apparemment sa ne fonctionne pas voila mon tileEntity

                    package portuar.cubicBeyond.client.blocks.decondenseur;
                    
                    import net.minecraft.entity.passive.EntityPig;
                    import net.minecraft.nbt.NBTTagCompound;
                    import net.minecraft.tileentity.TileEntity;
                    
                    public class TileEntityDecondenseur extends TileEntity
                    
                    {
                    public int coolDown = 100;
                    public float motorAngle, prevMotorAngle;
                    public boolean isUse;
                    public int itemId;
                    
                    public void readFromNBT(NBTTagCompound nbtTag)
                    {
                    super.readFromNBT(nbtTag);
                    isUse = nbtTag.getBoolean("isUse");
                    itemId = nbtTag.getInteger("itemId");
                    }
                    
                    public void writeToNBT(NBTTagCompound nbtTag)
                    {
                    super.writeToNBT(nbtTag);
                    nbtTag.setBoolean("isUse", isUse);
                    nbtTag.setInteger("itemId", itemId);
                    }
                    
                    public void updateEntity()
                    {
                    if(this.isUse == true)
                    {
                    this.prevMotorAngle = this.motorAngle;
                    this.motorAngle += 0.05F;
                    this.coolDown–;
                    
                    if(this.coolDown < 0)
                    {
                    if(this.itemId == 1)
                    {
                    EntityPig entity = new EntityPig(this.worldObj);
                    entity.setLocationAndAngles(this.xCoord, this.yCoord + 1, this.zCoord, 0, 0);
                    this.worldObj.spawnEntityInWorld(entity);
                    this.itemId = 0;
                    }
                    
                    this.coolDown = 100;
                    this.isUse = false;
                    }
                    
                    }
                    }
                    }
                    
                    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

                      Dans ton tile entity ajoute :

                      public Packet getDescriptionPacket()
                      {
                      NBTTagCompound nbttagcompound = new NBTTagCompound();
                      this.writeToNBT(nbttagcompound);
                      return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound);
                      }
                      
                      public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt)
                      {
                      this.readFromNBT(pkt.data);
                      }
                      

                      Pour que les valeurs soit synchronisées client / serveur

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

                        Je ne peux pas importez INetworkManager et Packet132TileEntityData
                        ps : je suis en 1.7

                        1 réponse Dernière réponse Répondre Citer 0
                        • Superloup10S Hors-ligne
                          Superloup10 Modérateurs
                          dernière édition par

                          version 1.7 :

                          
                          public Packet getDescriptionPacket()
                          {
                          NBTTagCompound nbttagcompound = new NBTTagCompound();
                          this.writeToNBT(nbttagcompound);
                          return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound);
                          }
                          
                          public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity updateTileEntity)
                          {
                          this.readFromNBT(updateTileEntity.func_148857_g());
                          }
                          
                          

                          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                            Ouai sa fonctionne mais ne change absolument rien au deux problèmes.

                            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

                              Sinon tu peux faire :

                              player.getCurrentEquippedItem().damageItem(1, player);
                              if(player.getCurrentEquippedItem().stackSize == 0)
                              {
                              player.setCurrentEquippedItem(null);
                              }
                              

                              Si c’est toujours pas bon, je vois vraiment pas 😕

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

                                nop toujours pas :S

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

                                  Met les syso un peut partout pour voir ou ça bloque

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

                                    Mais sa bloque pas c’est juste un beug ^^

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

                                      oue mais avec les syso on vera quelle partie bug

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

                                        mais enfete c’est même pas un beug juste pas la bonne fonction je pense.

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

                                          Envoi tout le code par pastebin stp

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

                                            je n’utilise pas pastebin

                                            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