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

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

                                    Mon tile entity :

                                    http://pastebin.com/XCYUXL3i

                                    Mon block :

                                    http://pastebin.com/NTPR7cW4

                                    Ps : j’ai fais un Sytem.out.println et j’ai u problème quand isUse est true et bah il varie en réalité entre true et false ce qui empeche l’animation.

                                    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

                                      @‘Superloup10’:

                                      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());
                                      }
                                      
                                      

                                      Mets ce code dans ton tile entity pour avoir une synchro client / serveur de tes variables.
                                      Mets aussi world/markBlockForUpdate(x, y, z); dans ta fonction onBlockClicked

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

                                        Bon je ne sais pas si ce que tu m’as donnés fonctionnent (j’ai testé mais rien ne chnage) parcontre mon PS cité ci-dessus est rectifié tout fonction apar cette histoire d’item et de c’est 1 stack et aussi de l’animation qui se fait pour tout les blocks en même temps.

                                        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