1.7.x Un fire rate



  • Salut 🙂

    Je développe un mod comprenant un fusil, mais le fusil à juste un fire rate juste énorme, une machine gun quoi ^^

    Voilà ma question : Comment tirer toute les deux secondes une balle ?

    Merci 🙂



  • Pourrais-tu nous donner la classe de ton fusil stp?



  • @'mindany2':

    Pourrais-tu nous donner la classe de ton fusil stp?

    package com.multi7200.tam.weapons;
    
    import com.multi7200.tam.TribesAscendMod;
    import com.multi7200.tam.entity.EntityDisk;
    
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntitySnowball;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public class TALightSpinfusor extends Item {
    
    public TALightSpinfusor() {
    
    }
    
    public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
    if(!world.isRemote) {
    world.spawnEntityInWorld(new EntityDisk(world, entityplayer));
    }
    
    return itemstack;
    }
    }
    
    

    L'entité de mon projectile :

    package com.multi7200.tam.entity;
    
    import net.minecraft.entity.EntityLiving;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.projectile.EntityThrowable;
    import net.minecraft.util.MovingObjectPosition;
    import net.minecraft.world.World;
    
    public class EntityDisk extends TribesProjectileEntityBase {
    
    public EntityDisk(World par1World)
    {
    super(par1World);
    
    }
    public EntityDisk(World par1World, EntityLivingBase par2EntityLiving)
    {
    super(par1World, par2EntityLiving);
    }
    public EntityDisk(World par1World, double par2, double par4, double par6)
    {
    super(par1World, par2, par4, par6);
    }
    
    @Override
    protected void onImpact(MovingObjectPosition var1) {
    super.onImpact(var1);
    }
    
    public void onUpdate() {
    super.onUpdate();
    }
    }
    
    


  • Je dis ça de tête mais essaye avec un

    int timer;
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) {
    ++timer;
    }
    public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
    if(!world.isRemote && timer>=40) {
    world.spawnEntityInWorld(new EntityDisk(world, entityplayer));
    time = 0;
    }
    
    return itemstack;
    }
    


  • @'mindany2':

    Je dis ça de tête mais essaye avec un

    int timer;
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) {
    ++timer;
    }
    public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
    if(!world.isRemote && timer>=40) {
    world.spawnEntityInWorld(new EntityDisk(world, entityplayer));
    }
    return itemstack;
    }
    

    Bon j'ai rajouté un timer = 0; à la fin et ça marche très bien ! Merci pour tout.

    (EDIT : Je n'avais pas vu le timer = 0; que t'avais mis 😛 )


  • Moddeurs confirmés Rédacteurs Administrateurs

    Non, puisqu'il est remit à 0 quand tu tire.



  • ?
    Tu cliques : si le timer est + de 2 secs ça tire et ça remet le compteur à 0 sinon non



  • Oui excuser moi, j'avais pas vu ^^



  • Résolu 😄 ?


Log in to reply