MFF

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

    Item lanceur de projectile

    Planifier Épinglé Verrouillé Déplacé Sans suite
    15 Messages 4 Publieurs 4.6k 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

      Ha, cette fonction n’est que exécuté quand tu fais un clic gauche sur une entités, j’ai mal lu la doc :
      “Called when the player Left Clicks (attacks) an entity.”
      Et il n’y a pas de paramètre World.
      Il n’y a pas d’autre fonction en rapport avec le clic gauche 😕
      Le !world.isremote, dans toute la fonction, donc comme ça :

      public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
      {
      if(!world.isRemote)
      {
      if(player.capabilities.isCreativeMode || player.inventory.hasItem(Laser_Mod.Laser.itemID))
      {
      if(shootTimer == 0)
      {
      world.spawnEntityInWorld(new EntityLaser(world, player, 4.0F));
      shootTimer = 15;
      for(int slotID = 0; slotID < player.inventory.getSizeInventory(); slotID++)
      {
      ItemStack ammo = player.inventory.getStackInSlot(slotID);
      if(ammo.itemID == Mod.Munition.itemID)
      {
      ammo.damageItem(1, player);
      break;
      }
      }
      }
      }
      }
      return stack;
      }
      

      Je peux voir la classe de ton rendu ?

      Pour la boucle for, tu as la réponse dans le code au dessus.

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

        J’ai fail -- j’ai pas changer tous les noms xD__

        import net.minecraft.client.renderer.Tessellator;
        import net.minecraft.client.renderer.entity.Render;
        import net.minecraft.entity.Entity;
        import net.minecraft.util.ResourceLocation;
        
        import org.lwjgl.opengl.GL11;
        import org.lwjgl.opengl.GL12;
        
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        
        public abstract class RenderLaser extends Render
        {
        
        private float size;
        
        public RenderLaser(float size)
        {
        
        this.size = size;
        
        }
        
        @Override
        public void doRender(Entity entity, double d0, double d1, double d2, float f, float f1)
        {
        this.doRenderLaser((EntityLaser)entity, d0, d1, d2, f, f1);
        }
        
        private void doRenderLaser(EntityLaser entity, double d0, double d1, double d2, float f, float f1)
        {
        GL11.glPushMatrix();
        
        GL11.glTranslatef((float)d0, (float)d1, (float)d2);
        
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        
        float var10 = this.size;
        
        GL11.glScalef(var10 / 1.0F, var10 / 1.0F, var10 / 1.0F);
        
        byte var11 = 0;
        
        this.loadTexture("laser_mod", "textures/entity/Laser.png");
        
        Tessellator var12 = Tessellator.instance;
        
        float var13 = (float)(var11 % 16 * 16 + 0) / 16.0F;
        
        float var14 = (float)(var11 % 16 * 16 + 16) / 16.0F;
        
        float var15 = (float)(var11 / 16 * 16 + 0) / 16.0F;
        
        float var16 = (float)(var11 / 16 * 16 + 16) / 16.0F;
        
        float var17 = 1.0F;
        
        float var18 = 0.5F;
        
        float var19 = 0.25F;
        
        GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
        
        GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
        
        var12.startDrawingQuads();
        
        var12.setNormal(0.0F, 1.0F, 0.0F);
        
        var12.addVertexWithUV((double)(0.0F - var18), (double)(0.0F - var19), 0.0D, (double)var13, (double)var16);
        
        var12.addVertexWithUV((double)(var17 - var18), (double)(0.0F - var19), 0.0D, (double)var14, (double)var16);
        
        var12.addVertexWithUV((double)(var17 - var18), (double)(1.0F - var19), 0.0D, (double)var14, (double)var15);
        
        var12.addVertexWithUV((double)(0.0F - var18), (double)(1.0F - var19), 0.0D, (double)var13, (double)var15);
        
        var12.draw();
        
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        
        GL11.glPopMatrix();
        
        }
        
        private void loadTexture(String string, String string2)
        {
        
        }
        
        }
        
        

        Voilà pour la classe de mon rendu…

        :heart: Fairy Tail
        :heart: Zelda
        :heart: geeker
        :@ ma soeur

        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

          abstract
          Pas normal, ta classe ne devrait pas être abstraite.

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

            Si ça t’intéresse j’ai utilisé ce tuto (yen a pas 250 des comme ça) : Créer un projectile___
            J’ai enlevé le abstract, add les methods implements (traducteur de fou :D) et ça ma rajouté en bas un

            @Override
            protected ResourceLocation getEntityTexture(Entity entity)
            {
            return null;
            }
            

            Et maintenant la ligne RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser(0.5F)); n’a pas d’erreur.

            :heart: Fairy Tail
            :heart: Zelda
            :heart: geeker
            :@ ma soeur

            1 réponse Dernière réponse Répondre Citer 0
            • jglrxavpokJ Hors-ligne
              jglrxavpok Modérateurs
              dernière édition par

              Pour ton problème de clic gauche, voici (une partie de) la solution:

              public boolean onEntitySwing(EntityLivingBase e, ItemStack s)
              {
              if(e instanceof EntityPlayer)
              {
              EntityPlayer player = (EntityPlayer)e;
              boolean flag = false;
              if(player.capabilities.isCreativeMode)
              {
              flag = true;
              }
              else
              {
              flag = player.inventory.consumeInventoryItem(ModHL2.modInstance.magnumAmmo.itemID);
              }
              if(flag)
              {
              EntityBullet bullet = new EntityBullet(e.worldObj, e, false, "magnum", 15, 64);
              if(!e.worldObj.isRemote)
              e.worldObj.spawnEntityInWorld(bullet);
              e.worldObj.playSoundAtEntity(e, "hl2:magnum_fire", 0.5f, 1);
              
              }
              else
              e.worldObj.playSoundAtEntity(e, "hl2:weapon_empty", 0.5f, 1);
              }
              return true;
              }
              

              Cette méthode consiste ainsi:
              Dès qu’une entitée “balance son bras” avec l’objet (clic gauche pour le joueur), on vérifie si c’est un joueur, si oui on tire, sinon, on fait rien 🙂 (et je te laisse les sons + vérification des munitions au cas où tu en aurais besoin)

              Modérateur sur MFF. 
              Mon Github: http://github.com/jglrxavpok
              Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                Ok merci 🙂

                :heart: Fairy Tail
                :heart: Zelda
                :heart: geeker
                :@ ma soeur

                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

                  Faut que tu return sur ta texture :

                  @Override
                  protected ResourceLocation getEntityTexture(Entity entity)
                  {
                  return texture;
                  }
                  

                  Et en haut de ta classe :

                  public static ResourceLocation texture = new ResourceLocation("laser_mod", "textures/entity/Laser.png");
                  

                  Et tu peux supprimer la méthode loadTexture que ne fonctionnera pas de toute façon.

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

                    Ok ! J’essaie tout ça !___
                    Et merci d’avoir validé mon tuto :D___
                    Dis-moi xavpok stp à quoi correspondent les valeurs “15” et “64” ?

                    :heart: Fairy Tail
                    :heart: Zelda
                    :heart: geeker
                    :@ ma soeur

                    1 réponse Dernière réponse Répondre Citer 0
                    • jglrxavpokJ Hors-ligne
                      jglrxavpok Modérateurs
                      dernière édition par

                      Les valeurs 15 et 64 de EntityBullet ?
                      Laisse tomber, c’est juste pour mon code, je suis trop flemmard pour faire des EntityBullet pour chaque arme x)

                      Modérateur sur MFF. 
                      Mon Github: http://github.com/jglrxavpok
                      Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                        A ok… (flemmard :D)

                        :heart: Fairy Tail
                        :heart: Zelda
                        :heart: geeker
                        :@ ma soeur

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

                          Vive la 1.7 !!!
                          (Oui, c’était ironique…) 😕

                          :heart: Fairy Tail
                          :heart: Zelda
                          :heart: geeker
                          :@ ma soeur

                          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