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

    Bug au niveau du timer

    Sans suite
    1.5.2
    3
    7
    2861
    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.
    • Nolan-XX
      Nolan-XX dernière édition par robin4002

      Salut a tous !
      vous vous souvenez sans doute qu’il y a quelques temps , j’ai fais une demande sur comment faire un timer .
      Donc , grâce a jglrxavpok et Robin4002 , j’ai réussi.
      Mais maintenant , un autre problème ce pose !
      Mes balles font plus de dégâts :s !
      Voila les codes :

      Le fusil

      package mods.nono.MGSmod.weapons;
      
      import mods.nono.MGSmod.ShotsType.EntityShoot;
      import mods.nono.MGSmod.ShotsType.EntityShootSimple;
      import mods.nono.MGSmod.common.Main;
      import net.minecraft.client.renderer.texture.IconRegister;
      import net.minecraft.enchantment.Enchantment;
      import net.minecraft.enchantment.EnchantmentHelper;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      
      public class W_SOCOM extends Item {
          private int shootTimer;
      
          public W_SOCOM(int par1) {
              super(par1);
              this.maxStackSize = 1; // dit qu'il ne peut avoir que 1 pistolet
              this.setCreativeTab(Main.MGSTAB);
          }
      
          public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
      
          {
              boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;
      
              if (flag || par3EntityPlayer.inventory.hasItem(Main.SOammo.itemID)) {
      
                  if (shootTimer == 0) {
                      par2World.spawnEntityInWorld(new EntityShootSimple(par2World, par3EntityPlayer, 1));
                      par3EntityPlayer.inventory.consumeInventoryItem(Main.SOammo.itemID);
                      shootTimer = 20;
                  }
      
              }
              return par1ItemStack;
          }
      
          public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean hasItemInHand)
          {
              if(shootTimer > 0)
              {
                  shootTimer--;
              }
          }
      
          @Override
          public void registerIcons(IconRegister iconRegister) {
              itemIcon = iconRegister.registerIcon("nono/MGSmod:SOCOM");
          }
      }
      

      L’entité de la balle

      package mods.nono.MGSmod.ShotsType;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.projectile.EntityThrowable;
      import net.minecraft.util.DamageSource;
      import net.minecraft.util.MathHelper;
      import net.minecraft.util.MovingObjectPosition;
      import net.minecraft.world.World;
      
      public class EntityShootSimple extends EntityThrowable {
      
          private static final Entity thrower = null;
          private int ticksInGround;
      
          public EntityShootSimple(World par1World, EntityLiving par2EntityLiving, float speed) {
      
              super(par1World, par2EntityLiving);
      
              this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, speed, 1.0F);
      
          }
      
          public void setThrowableHeading(double par1, double par3, double par5, float par7, float par8) {
              float f2 = MathHelper.sqrt_double(par1 * par1 + par3 * par3 + par5 * par5);
              par1 /= (double) f2;
              par3 /= (double) f2;
              par5 /= (double) f2;
              par1 += this.rand.nextGaussian() * (double) (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double) par8;
              par3 += this.rand.nextGaussian() * (double) (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double) par8;
              par5 += this.rand.nextGaussian() * (double) (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double) par8;
              par1 *= (double) par7;
              par3 *= (double) par7;
              par5 *= (double) par7;
              this.motionX = par1;
              this.motionY = par3;
              this.motionZ = par5;
              float f3 = MathHelper.sqrt_double(par1 * par1 + par5 * par5);
              this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI);
              this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(par3, (double) f3) * 180.0D / Math.PI);
              this.ticksInGround = 0;
          }
      
          /*
           * if(var1.entityHit !=null){
           * 
           * if(var1.entityHit !=null){
           * 
           */
      
          @Override
      
          protected void onImpact(MovingObjectPosition var1) {
      
              if (var1.entityHit != null) {
      
                  var1.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.thrower), 5);
                  this.setDead();
              }
              else
              {
                  this.setDead();
              }
      
          }
      
          public void onUpdate() {
      
              super.onUpdate();
              if (this.ticksExisted == 175)
                  ;
          }
      
          protected float getGravityVelocity() {
              return 0;
          }
      }
      

      Le render de la balle

      package mods.nono.MGSmod.ShotsType;
      
      import net.minecraft.client.renderer.Tessellator;
      import net.minecraft.client.renderer.entity.Render;
      import net.minecraft.entity.Entity;
      
      import org.lwjgl.opengl.GL11;
      import org.lwjgl.opengl.GL12;
      
      public class RenderEntityShootSimple extends Render {
      
          private float size;
      
          public RenderEntityShootSimple(float size) {
              this.size = size;
          }
      
          @Override
      
          public void doRender(Entity var1, double var2, double var4, double var6, float var8, float var9) {
      
              this.doRenderMonProjectile((EntityShootSimple) var1, var2, var4, var6, var8, var9);
      
          }
      
          public void doRenderMonProjectile(EntityShootSimple par1EntityMonProjectile, double par2, double par4, double par6, float par8, float par9) {
      
              GL11.glPushMatrix();
      
              GL11.glTranslatef((float) par2, (float) par4, (float) par6);
      
              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("/nono/MGSmod/textures/items/Shot.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();
          }
      }
      

      Merci d’avance pour vos réponses …

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

        Je ne comprends pas bien la question. Les balles ne font plus ou font + de dégâts ?

        Aussi, je te conseille que la classe de ton render soit une classe fille de RenderEntity, pour que ce soit plus cohérent.
        De plus, je ne comprends pas trop l’intérêt de la ligne (dans update() de l’entity):

        if (this.ticksExisted == 175);
        

        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
        • Nolan-XX
          Nolan-XX dernière édition par

          Elle ne font plus aucun dégâts

          Cette ligne donne la durée de vie de la balle avant quelle disparaisse “naturellement”

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

            La balle ne disparaît pas “naturellement” avec cette ligne. C’est ce que j’appelle une “condition vide”, il n’y a absolument aucune instruction avec elle, donc pas de disparition magique 😕

            Sinon, pour le problème, je ne vois pas trop d’où ça peut venir 😕
            La balle apparaît-elle bien à l’écran ?

            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
            • Nolan-XX
              Nolan-XX dernière édition par

              Oui elle apparait bien …

              1 réponse Dernière réponse Répondre Citer 0
              • Nolan-XX
                Nolan-XX dernière édition par

                Up
                Personne ne peut m’aider ?

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

                  Je ne vois pas la raison 😞

                  "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                  ― Jordan B. Peterson

                  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