Faire un temps d'attendre apres l'utilisation d'un objet



  • bonjour a tous

    je cherche le moyen de faire en sorte que si le joeur utilise un item il doivent attendre un moment avant de pouvoir réutiliser l'itm
    et faire en sorte également que si le joueurarrete le temps d'attente cela recommence
    pour l'action j'ai regarder au  niveau de l'arc il y l'event canceled

    merci pour vos réponses



  • Une condition qui valide un timer je pense



  • timer ? j'ai jamais fait de timer tu sait comment faire?


  • Administrateurs

    Je ne vois pas ce qu'il y a de compliqué dans l'arc …

    ​    public int getMaxItemUseDuration(ItemStack stack)
    
        {
            return 72000;
        }
    

    Temps maximum d'utilisation

    ​    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    
        {
            player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
            return stack;
        }
    

    Fait que le joueur utilise l'item lors du clic droit

    ​    public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int time)
        {
    // lorsque le joueur lâche le clic droit, time correspond au temps durant lequel il a chargé l'item
        }
    


  • @'robin4002':

    Je ne vois pas ce qu'il y a de compliqué dans l'arc …

    ​    public int getMaxItemUseDuration(ItemStack stack)
    
        {
            return 72000;
        }
    

    Temps maximum d'utilisation

    ​    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    
        {
            player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
            return stack;
        }
    

    Fait que le joueur utilise l'item lors du clic droit

    ​    public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int time)
        {
    // lorsque le joueur lâche le clic droit, time correspond au temps durant lequel il a chargé l'item
        }
    

    je sais que rien n'est compliquer dans l'arc je ne sais juste pas faire de timer



  • ​public class ItemTestCoolDown extends Item
    
    {
    protected int cooldown = 0;
    protected int twentyMin = 24000; //20 minutes d'attente avant chaques utilisations 24000 = ticks minecraft
    
    public ItemTestCoolDown() 
    {
    super();
    this.setCreativeTab(BOTICore.blocks);
    }
    
    @Override
    public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
    {
    cooldown = cooldown + 1;
    if(cooldown == twentyMin)
    {
    ((EntityPlayer) entity).addChatMessage((new ChatComponentText(EnumChatFormatting.GREEN + "You can use it now !")));
    }
    
    }
    
    @Override
    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    
    if(!par2World.isRemote)
    {
    //CODE ICI
    cooldown = 0; 
    }
    return par1ItemStack;
    }
    

    Cadeau !



  • @'ZeAmateis':

    ​public class ItemTestCoolDown extends Item
    
    {
    protected int cooldown = 0;
    protected int twentyMin = 24000; //20 minutes d'attente avant chaques utilisations 24000 = ticks minecraft
    
    public ItemTestCoolDown() 
    {
    super();
    this.setCreativeTab(BOTICore.blocks);
    }
    
    @Override
    public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
    {
    cooldown = cooldown + 1;
    if(cooldown == twentyMin)
    {
    ((EntityPlayer) entity).addChatMessage((new ChatComponentText(EnumChatFormatting.GREEN + "You can use it now !")));
    }
     
    }
    
    @Override
    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    
    if(!par2World.isRemote)
    {
    //CODE ICI
    cooldown = 0; 
    }
    return par1ItemStack;
    }
    

    Cadeau !

    Merci beaucoup ! Sa va me faire avancer je change le sujet en résolu