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.
    • 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
                                          • utyboU Hors-ligne
                                            utybo
                                            dernière édition par

                                            Sur pastebin.com tu n’es pas obligé d’avoir un compte…

                                            Moddeur à la retraite et développeur de trucs en Java.

                                            J'aide les gens comme je peux, alors si mon message v…

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB