MFF

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

    Crash sans rapport d'erreur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    7 Messages 2 Publieurs 1.5k 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.
    • FolganskyF Hors-ligne
      Folgansky Correcteurs
      dernière édition par robin4002

      Plop.

      J’ai fais une arme qui tire si on a “Use” l’arme un certain nombre de ticks.
      Bref, pour afficher que l’arme était assez chargée j’ai pensé changer le rendu.

      public class RenderRailGun implements IItemRenderer
      {
          protected ModelRailGun model;
          protected static final ResourceLocation texture = new ResourceLocation("ModPg2:textures/models/items/RailGun.png");
      protected static final ResourceLocation texture2 = new ResourceLocation("ModPg2:textures/models/items/RailGun2.png");
      
          public RenderRailGun()
          {
              model = new ModelRailGun();
          }
      
          @Override
          public boolean handleRenderType(ItemStack item, ItemRenderType type)
          {
              switch(type)
              {
              case EQUIPPED:
                  return true;
              case EQUIPPED_FIRST_PERSON:
                  return true;
              default:
                  return false;
              }
          }
      
          @Override
          public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
          {
              return false;
          }
      
          @Override
          public void renderItem(ItemRenderType type, ItemStack item, Object… data)
          {
              switch(type)
              {
              case EQUIPPED:
              {
                  GL11.glPushMatrix();
                  GL11.glRotatef(90.F, 1.0F, 0.2F, 0.0F);
                  GL11.glRotatef(100.F, 1.0F, 0.0F, 0.0F);
                  GL11.glTranslatef(0.56F, -0.45F, -0.65F);
                  GL11.glScaled(0.6F, 0.4F, 0.4F);
                  Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                  model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                  GL11.glPopMatrix();
                  break;
              }
              case EQUIPPED_FIRST_PERSON:
              {
              if(item.getTagCompound() == null) 
              {
                      item.setTagCompound(new NBTTagCompound());
                  }
              else
              {
              if(item.getTagCompound().getBoolean("loaded") == true)
              {
              GL11.glPushMatrix();
                          GL11.glRotatef(90.F, 1.0F, -0.2F, 0.0F);
                          GL11.glRotatef(100.F, 0.5F, -0.2F, -0.6F);
                          GL11.glRotatef(30.F, -0.1F, -0.5F, 0.0F);
                          GL11.glTranslatef(0.3F, -0.2F, -1.0F);
                          GL11.glScaled(0.55F, 0.55F, 0.55F);
              Minecraft.getMinecraft().renderEngine.bindTexture(texture2);
              model.render((Entity)null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
              GL11.glPopMatrix();
              break;
              }
              else
              {
                      GL11.glPushMatrix();
                          GL11.glRotatef(90.F, 1.0F, -0.2F, 0.0F);
                          GL11.glRotatef(100.F, 0.5F, -0.2F, -0.6F);
                          GL11.glRotatef(30.F, -0.1F, -0.5F, 0.0F);
                          GL11.glTranslatef(0.3F, -0.2F, -1.0F);
                          GL11.glScaled(0.55F, 0.55F, 0.55F);
                          Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                          model.render((Entity)null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                          GL11.glPopMatrix();
                          break;
              }
              }                    
              }
              default:
                  break;
              }
          }
      }
      

      Mais quand le changement de rendu se fait, il y a “internal server error” ça m’expulse mais aucun rapport de crash, je suis renvoyé sur la connexion à un serveur.
      Un peu compliqué de savoir comment résoudre le problème du coup de mon côté.

      Edit: D’ailleurs comme ça marche très bien côté client, c’est sûrement une histoire de side, non?

      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

        Il faudrait les logs du serveur.

        1 réponse Dernière réponse Répondre Citer 0
        • FolganskyF Hors-ligne
          Folgansky Correcteurs
          dernière édition par robin4002

          ça devrait être là:

          Pastebin _ error

          Edit: Je mets la classe de l’item, j’vois NPE dans l’histoire…

          
          package fr.powergame.modpg2.common;
          
          import net.minecraft.entity.Entity;
          import net.minecraft.entity.EntityLivingBase;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.item.Item;
          import net.minecraft.item.ItemStack;
          import net.minecraft.nbt.NBTTagCompound;
          import net.minecraft.world.World;
          
          public class ItemRailGun extends Item 
          {      
          public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int useTime)
              {
          if (useTime <= 2940)
          {
          EntityBullet entityBullet = new EntityBullet(world, player);
          world.playSoundAtEntity(player, "note.bd", 0.3F, 1.0F);
          if (!world.isRemote)
          {
          player.worldObj.spawnEntityInWorld(entityBullet);
          } 
            if(!player.capabilities.isCreativeMode)
          {   
          player.inventory.consumeInventoryItem(ModPg2.itemBullet);    
          }
          stack.getTagCompound().setBoolean("loaded", !(stack.getTagCompound().getBoolean("loaded")));
          }
          }  
          
              public void onUsingTick(ItemStack stack, EntityPlayer player, int count)
              {
          if (count == 2940)
          {
          stack.getTagCompound().setBoolean("loaded", !(stack.getTagCompound().getBoolean("loaded")));
          }
              }
          
              public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player)
              {
                  return stack;
              }
          
              public int getMaxItemUseDuration(ItemStack stack)
              {
                  return 3000;
              }
          
              public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
              {
                  return true;
              }
          
              public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack)
              {
                  return true;
              }
          
              public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
          {
          if(player.inventory.hasItem(ModPg2.itemBullet))
          {
          player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
          }
          return stack;
          }
          
              public void writeToNBT(NBTTagCompound nbt) 
          {
          nbt.setBoolean("loaded", false);
          }
          
          public void readFromNBT(NBTTagCompound nbt) 
          {
          nbt.getBoolean("loaded");
          }
          }
          
          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

            Caused by: java.lang.NullPointerException
            at fr.powergame.modpg2.common.ItemRailGun.onUsingTick(ItemRailGun.java:100) ~[ItemRailGun.class:?]
            Voila le responsable de cette déconnexion. Tu as un npe à la ligne 100 de ItemRailGun

            1 réponse Dernière réponse Répondre Citer 0
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par

              Y’a pas de ligne 100 :s

              Edit: Je me rends aussi compte que mon code n’est plus fonctionnel (je m’étais couché content pourtant)

              Edit2: Visiblement la méthode onUsingTick n’est jamais appelée oO

              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

                Si si elle est appelé, sinon ça ne crasherait pas.

                1 réponse Dernière réponse Répondre Citer 0
                • FolganskyF Hors-ligne
                  Folgansky Correcteurs
                  dernière édition par

                  Bon j’ai rien compris, j’ai rien changé, plus de soucis.

                  Joie…

                  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