MFF

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

    Internal Sever Error avec un item

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    14 Messages 4 Publieurs 908 Vues 2 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.
    • SpyManS Hors-ligne
      SpyMan
      dernière édition par SpyMan

      aussi

      	private boolean isMousePressed = false;
      	private float[] cooldownList;
      	private Spells[] spellList;
      	private int currentSpell = 0;
      

      c’est variables ci auront les memes valeurs pour tout les Item de ce type DANS TOUT LE JEU
      car les class d’item et de block de minecraft sont des Singleton (= on une seul instance et ne doivent pas en avoir plusieurs)

      donc si SpyMan a cet item en jeu et l’utilise alors MysteriousDev aussi aura le meme item avec les meme valeurs a ces variables

      si tu veux stocké des données sur un item passe par les NBT de l’itemstack en question

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

        Ce message a été supprimé !
        1 réponse Dernière réponse Répondre Citer 0
        • Mysterious_DevM Hors-ligne
          Mysterious_Dev
          dernière édition par

          Merci pour vos suggestions, j’en ai tenu compte et je me heurte a un autre problème, c’est que pour passer les cooldown en nbt normalement j’ai besoin d’une classe NBTTagFloatArray(ou un truc similaire) et le soucis c’est que ça n’éxiste pas … Selon vous comment je pourrais faire pour palier a ce problème ?

          Merci d’avance.

          Cordialement
          Mysterious Devs

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

            tu stock chaque float associé a une id et voila, pour recup le bon float tu prend son id

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

              @SpyMan tu parle de sauvegarder dans une HasmMap donc ?

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

                non dans les NBT

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

                  J’ai un autre un problème qui est que j’ai des pertes de packets (il sert a envoyer au serveur l’information si le joueur fait un clic gauche ou pas) et le problème c’est qu’en jeu le clic gauche marche 1 fois sur 40, merci d’avance

                  package mysteriousdevs.spellp.packet;
                  
                  import io.netty.buffer.ByteBuf;
                  import mysteriousdevs.spellp.Main;
                  import mysteriousdevs.spellp.init.ModItems;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.nbt.NBTTagCompound;
                  import net.minecraft.util.EnumHand;
                  import net.minecraft.util.IThreadListener;
                  import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
                  import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
                  import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
                  
                  public class PacketLeftClick implements IMessage
                  {
                  
                  	public boolean IsLeftClick;
                  
                  	public PacketLeftClick() {}
                  
                  	public PacketLeftClick(boolean LeftClick)
                  	{
                  
                  		this.IsLeftClick = LeftClick;
                  	}
                  
                  	@Override
                  	public void fromBytes(ByteBuf buf)
                  	{
                  
                  		this.IsLeftClick = buf.readBoolean();
                  
                  	}
                  
                  	@Override
                  	public void toBytes(ByteBuf buf)
                  	{
                  
                  		buf.writeBoolean(this.IsLeftClick);
                  
                  	}
                  
                  	public static class Handler implements IMessageHandler<PacketLeftClick, IMessage>
                  	{
                  		@Override
                  		public IMessage onMessage(PacketLeftClick message, MessageContext ctx)
                  		{
                  			IThreadListener thread = Main.proxy.getListener(ctx);
                  			EntityPlayer player = Main.proxy.getPlayer(ctx);
                  			thread.addScheduledTask(() -> {
                  				if( player != null )
                  				{
                  					if( player.getHeldItem(EnumHand.MAIN_HAND) != ItemStack.EMPTY )
                  					{
                  						ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
                  
                  						if(stack.getItem() == ModItems.IopSword)
                  						{
                  							if(!stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound());
                  
                  							stack.getTagCompound().setBoolean("leftClick", message.IsLeftClick);
                  						}
                  					}
                  				}
                  			});
                  
                  			return null;
                  
                  		}
                  	}
                  
                  }
                  
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • Wind_BladeW Hors-ligne
                    Wind_Blade
                    dernière édition par

                    si tu veut juste faire du code quand le joueur attaque avec ton épée t’a pas besoin de crée un packet tu peut override onEntitySwing dans ta class d’item

                    Mysterious_DevM 1 réponse Dernière réponse Répondre Citer 0
                    • Mysterious_DevM Hors-ligne
                      Mysterious_Dev @Wind_Blade
                      dernière édition par

                      @Wind_Blade a dit dans Internal Sever Error avec un item :

                      si tu veut juste faire du code quand le joueur attaque avec ton épée t’a pas besoin de crée un packet tu peut override onEntitySwing dans ta class d’item

                      Ce que je veux faire en gros c’est quand le joueur fait clique gauche (dans les airs ou sur un block) ça change de sort donc est ce que ça marche même dans le vide ?

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

                        Tout est bon, tout est passé en NBT et les problèmes de clique gauche sont réglés , merci beaucoup a vous tous pour votre aide.

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB