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

    Problème npc

    Sans suite
    4
    7
    1187
    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.
    • I
      impuuu dernière édition par

      Bonjour la je travail sur un system de PNJ (npc) pour mon serveur rp  j ai commencé faire comme il faut mais quand je tente de summon l entité sa marche pas sa me donne une erreur

      Le code :

      package fr.impuuu.havenrp.entity;
      
      import com.google.common.io.ByteArrayDataOutput;
      import com.google.common.io.ByteStreams;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import fr.impuuu.havenrp.common.HavenRP;
      import net.minecraft.client.entity.EntityClientPlayerMP;
      import net.minecraft.client.resources.I18n;
      import net.minecraft.entity.DataWatcher;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.monster.EntityMob;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.nbt.NBTTagCompound;
      import net.minecraft.network.play.client.C17PacketCustomPayload;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.EnumChatFormatting;
      import net.minecraft.world.World;
      
      public class EntityNPC   extends EntityLiving
      {
          public EntityNPC(World world)
          {
            super(world);
          }
      
          public boolean isMovementCeased()
          {
            return true;
          }
      
          public void onLivingUpdate() {}
      
          @SideOnly(Side.CLIENT)
          public boolean interact(EntityPlayer player)
          {
            EntityClientPlayerMP playerMP = (EntityClientPlayerMP)player;
            EENRestrained props = EENRestrained.get(player);
            DataWatcher dw = getDataWatcher();
            ByteArrayDataOutput out = ByteStreams.newDataOutput();
            if (!player.isSneaking())
            {
              if (!dw.getWatchableObjectString(21).equalsIgnoreCase("Conces"))
              {
                out.writeUTF("chestcommands open " + dw.getWatchableObjectString(21));
                out.writeUTF(dw.getWatchableObjectString(22));
                if ((dw.getWatchableObjectString(22).equals("Player")) || (dw.getWatchableObjectString(22).equals("")))
                {
                  C17PacketCustomPayload packet = new C17PacketCustomPayload("ForgeToBukkit", out.toByteArray());
                  playerMP.sendQueue.addToSendQueue(packet);
                }
                else if (dw.getWatchableObjectString(22).equals("vip"))
                {
                  if (props.vip)
                  {
                    C17PacketCustomPayload packet = new C17PacketCustomPayload("ForgeToBukkit", out.toByteArray());
                    playerMP.sendQueue.addToSendQueue(packet);
                  }
                  else
                  {
                    player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.DARK_RED +"tes pas VIP !"));
                  }
                }
      
              }
            }
            else {
              return false;
            }
            return true;
          }
      
          public boolean isEntityInvulnerable()
          {
            return true;
          }
      
          public void writeEntityToNBT(NBTTagCompound nbt)
          {
            super.writeEntityToNBT(nbt);
            DataWatcher dw = getDataWatcher();
            nbt.setString("HavenRPTexture", dw.getWatchableObjectString(20));
            nbt.setString("HavenRPAction", dw.getWatchableObjectString(21));
            nbt.setString("HavenRPPerm", dw.getWatchableObjectString(22));
            nbt.setString("HavenRPX", dw.getWatchableObjectString(23));
            nbt.setString("HavenRPY", dw.getWatchableObjectString(24));
            nbt.setString("HavenRPZ", dw.getWatchableObjectString(25));
            nbt.setString("HavenRPDirection", dw.getWatchableObjectString(26));
            nbt.setString("HavenRPNom", dw.getWatchableObjectString(27));
          }
      
          public void readEntityFromNBT(NBTTagCompound nbt)
          {
            super.readEntityFromNBT(nbt);
            DataWatcher dw = getDataWatcher();
            String tex = nbt.getString("HavenRPTexture");
            String act = nbt.getString("HavenRPAction");
            String perm = nbt.getString("HavenRPPerm");
            String x = nbt.getString("HavenRPX");
            String y = nbt.getString("HavenRPY");
            String z = nbt.getString("HavenRPZ");
            String dir = nbt.getString("HavenRPDirection");
            String nom = nbt.getString("HavenRPNom");
            dw.updateObject(20, tex);
            dw.updateObject(21, act);
            dw.updateObject(22, perm);
            dw.updateObject(23, x);
            dw.updateObject(24, y);
            dw.updateObject(25, z);
            dw.updateObject(26, dir);
            dw.updateObject(27, nom);
          }
        }
      
      

      L’erreur:

      [15:54:30] [Server thread/ERROR] [FML]: An Entity marketPNJ(fr.impuuu.havenrp.entity.EntityNPC) has thrown an exception during loading, its state cannot be restored. Report this to the mod author
      net.minecraft.util.ReportedException: Loading entity NBT
      at net.minecraft.entity.Entity.readFromNBT(Entity.java:1642) ~[Entity.class:?]
      at net.minecraft.entity.EntityList.createEntityFromNBT(EntityList.java:191) [EntityList.class:?]
      at net.minecraft.command.server.CommandSummon.processCommand(CommandSummon.java:96) [CommandSummon.class:?]
      at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:96) [CommandHandler.class:?]
      at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:788) [NetHandlerPlayServer.class:?]
      at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:764) [NetHandlerPlayServer.class:?]
      at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:47) [C01PacketChatMessage.class:?]
      at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:68) [C01PacketChatMessage.class:?]
      at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
      at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]
      at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]
      at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]
      at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [IntegratedServer.class:?]
      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
      at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
      Caused by: java.lang.NullPointerException
      at net.minecraft.entity.DataWatcher.updateObject(DataWatcher.java:153) ~[DataWatcher.class:?]
      at fr.impuuu.havenrp.entity.EntityNPC.readEntityFromNBT(EntityNPC.java:105) ~[EntityNPC.class:?]
      at net.minecraft.entity.Entity.readFromNBT(Entity.java:1630) ~[Entity.class:?]
      … 14 more
      [15:54:30] [Server thread/INFO]: [Player97: Unable to summon object]
      [15:54:30] [Client thread/INFO]: [CHAT] Unable to summon object
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • Deleted
        Deleted dernière édition par

        Ta variable tex semble être null, ce qui n’est pas étonnant puisque tu l’initialises avec un datawatcher, alors que si on regarde ta classe, elle n’override même pas la méthode init(), pourtant indispensable lorsqu’on se sert des datawatchers !
        Soit tu essaies de résoudre ton bug tout seul en regardant le tuto sur les datawatchers sur minecraftforge.net + avec les classes de MC, soit tu attends une réponse plus détaillée d’un autre membre, ou mon tuto complet sur datawatchers & nbttag qqui sortira début de semaine prochaine 😉

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

          Je vais attendre que un membre détails plus

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

            Pas grand chose à dire : ta variable est nulle, il faut l’initialisée comme l’a dit Plaigon

            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

              Les npe ce n’est pas compliqué à résoudre …

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

                je le résoud comment

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

                  Bah comme on te l’a dit : initialiser la varibale, Plaigon a mieux expliqué que moi

                  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