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

    Barre de vie Boss Custom qui ne s'affiche pas

    Sans suite
    1.7.10
    1
    3
    1067
    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.
    • Deleted
      Deleted dernière édition par

      Salut tout le monde, j’ai crée récemment une interface pour récupérer quelque info sur le boss, une autre class qui est l’équivalent de BossStatus pour mon mob et j’ai ajouté quelque fonctions dans l’entity du mob ainsi que dans son render. J’ai regardé plein de class de minecraft et j’ai vu que la barre de vie des boss s’affiche grâce au gui GuiIngame cependant ne pouvant pas l’éditer j’ai essayé de rajouter les mêmes fonctions dans mon tickhandler mais en vain rien ne fonctionne jue bloque depuismaintenant 2 heures et mes recherches sont actives depuis maintenant 4 heures. En gros je bloque VRAIMENT
      Je vous passe mes class

      Mon tickhandler:

      
      package mrplaigon.fr.testMod.client;
      
      @SideOnly(Side.CLIENT)
      public class RenderTickHandler 
      {
      
      // Stores an instance of Minecraft for easy access 
      private Minecraft mc;
      
      // create a constructor that takes a Minecraft argument; now we have it whenever we need it
      public RenderTickHandler(Minecraft mc) 
      {
      
      this.mc = mc;
      
      }
      
      @SubscribeEvent
      public void onRenderTick(RenderTickEvent event) 
      {
      if (event.phase == Phase.START) 
      {
      //this is the equivalent of tickStart
      
      if(mc.thePlayer != null)
      {
      renderBossHealth();
      }
      }
      }
          /**
           * Renders dragon's (boss) health on the HUD
           */
          protected void renderBossHealth()
          {
              if (CustomBossStatus.bossName != null && CustomBossStatus.statusBarTime > 0)
              {
                  –CustomBossStatus.statusBarTime;
                  FontRenderer fontrenderer = this.mc.fontRenderer;
                  ScaledResolution scaledresolution = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
                  int i = scaledresolution.getScaledWidth();
                  short short1 = 182;
                  int j = i / 2 - short1 / 2;
                  int k = (int)(CustomBossStatus.healthScale * (float)(short1 + 1));
                  byte b0 = 12;
                  this.drawTexturedModalRect(j, b0, 0, 74, short1, 5);
                  this.drawTexturedModalRect(j, b0, 0, 74, short1, 5);
      
                  if (k > 0)
                  {
                      this.drawTexturedModalRect(j, b0, 0, 79, k, 5);
                  }
      
                  String s = CustomBossStatus.bossName;
                  fontrenderer.drawStringWithShadow(s, i / 2 - fontrenderer.getStringWidth(s) / 2, b0 - 10, 16777215);
                  GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                  this.mc.getTextureManager().bindTexture(new ResourceLocation("textures/gui/icons.png"));
              }
          }
          public void drawTexturedModalRect(int i, int j, int k, int l, int i1, int j1)
          {
              float f = 0.00390625F;
              float f1 = 0.00390625F;
              Tessellator tessellator = Tessellator.instance;
              tessellator.startDrawingQuads();
              tessellator.addVertexWithUV(i + 0, j + j1, -90F, (float)(k + 0) * f, (float)(l + j1) * f1);
              tessellator.addVertexWithUV(i + i1, j + j1, 90F, (float)(k + i1) * f, (float)(l + j1) * f1);
              tessellator.addVertexWithUV(i + i1, j + 0, 90F, (float)(k + i1) * f, (float)(l + 0) * f1);
              tessellator.addVertexWithUV(i + 0, j + 0, 90F, (float)(k + 0) * f, (float)(l + 0) * f1);
              tessellator.draw();
          }
      }
      
      

      Mon entity

      
      package mrplaigon.fr.testMod.entity;
      
      public class EntityBoss extends EntityMob implements IBossHPBar
      
      {
      
          private static final ItemStack defaultHeldItem;
          //public int deathTicks;
      public short timerReload = 0;
          public float crescendo = 0.0F;
          public float decrescendo = 2.5F;
          public float soundMusicValue;
      
      public EntityBoss(World world) 
      {
      super(world);
              this.setSize(this.width * 3.5F, this.height * 2.4F);
              this.isImmuneToFire = true;
      }
      
      public void applyEntityAttributes() 
      {
      super.applyEntityAttributes();
      getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10.0D);
      getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(20.0D);
      getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
      getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(5.0D);
      }
      
          public void onLivingUpdate()
          {
          super.onLivingUpdate();
      }
      
      @Override
      public int getBossHP() 
      {
      return 10;
      }
      
      @Override
      public int getBossMaxHP() 
      {
      
      return 10;
      }
      
      @Override
      public String getBossTitle() 
      {
      
      return "VICTOS, Monstre Abominable";
      }
      }
      
      

      Mon render:

      
      package mrplaigon.fr.testMod.client.renderer.entity.mob;
      
      public class RenderEntityBoss
        extends RenderLiving
      {
      public final ResourceLocation texturePhase1 = new ResourceLocation(testMod.MODID, "textures/entity/BossPhase1.png"); 
      
      public ModelEntityBoss modelboss;
      
        public RenderEntityBoss(ModelEntityBoss modelboss, float shadow)
        {
          super(modelboss, shadow);
          this.modelboss = modelboss;
        }
      
        protected void preRenderCallback(EntityBoss boss, float f)
        {
       GL11.glScalef(2, 2, 2);
        }
      
        protected void preRenderCallback(EntityLivingBase par1EntityLivingBase, float par2)
        {
            this.preRenderCallback((EntityBoss )par1EntityLivingBase, par2);
        }
      
        public void doRender(EntityBoss boss, double par2, double par4, double par6, float par8, float par9)
        {
            CustomBossStatus.setBossStatus(boss, false);
            super.doRender((EntityLiving)boss, par2, par4, par6, par8, par9);
        }
      
        public void doRender(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9)
        {
            this.doRender((EntityBoss )par1EntityLiving, par2, par4, par6, par8, par9);
        }
      
        public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
        {
            this.doRender((EntityBoss )par1Entity, par2, par4, par6, par8, par9);
        }
      
        public void doRender(EntityLivingBase par1Entity, double par2, double par4, double par6, float par8, float par9)
        {
            this.doRender((EntityBoss )par1Entity, par2, par4, par6, par8, par9);
        }
      
        protected ResourceLocation getEntityTexture(Entity entity)
        {
          return getMobTutorielTexture((EntityBoss )entity);
        }
      
        private ResourceLocation getMobTutorielTexture(EntityBoss boss)
        {
      
       return this.texturePhase1;
        }
      }
      
      

      Mon interface

      
      package mrplaigon.fr.testMod.common.other;
      
      public interface IBossHPBar 
      {
          public abstract int getBossHP();
      
          public abstract int getBossMaxHP();
      
          public abstract String getBossTitle();
      }
      
      

      et enfin mon customBossStatus

      
      package mrplaigon.fr.testMod.common.other;
      
      @SideOnly(Side.CLIENT)
      public final class CustomBossStatus
      {
          public static float healthScale;
          public static int statusBarTime;
          public static String bossName;
      
          public static void setBossStatus(IBossHPBar bossHPBar, boolean par1)
          {
              healthScale = bossHPBar.getBossHP() / bossHPBar.getBossMaxHP();
              statusBarTime = 100;
              bossName = bossHPBar.getBossTitle();
          }
      }
      
      

      Evidemment comme d’habitude je vous remercie d’avance pour votre temps que vous m’accordez et je souhaite en retours une bonne chance pour résoudre ce problème qui n’est pas des moindres.

      PS1 = Je sais y’a des tutos sur mff qui traitent ça mais comme vous vous en doutez moi c’est une barre de vie custom qui n’a donc pas la même texture et puis une fois que celle ci marchera je souhaiterai encore la custom.

      PS2 = J’ai retiré les imports car rien que dans mon entity y’en avait beaucoup trop ^^

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

        UP ! SVP ça presse

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

          UP SVP je n’ai toujours rien trouvé !

          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