Задержка

318
12
Код:
    public static int dellay;
    
    @Override
    public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player)
    {    
        
        if (dellay == 0)
        {
            if (player.inventory.hasItem(Items.arrow) || player.capabilities.isCreativeMode) {
                dellay = 2;
                world.playSoundAtEntity(player, "random.explode", 1.5F, 1.8F);
                myBullet blasterBullet = new myBullet(world, player, 4.0F);
                world.spawnEntityInWorld(blasterBullet);
                //player.setAngles(0, 8);
                return is;
        } 
        else 
        {
            world.playSoundAtEntity(player, "random.click", 0.5F, 1.8F);
        }
        }
        dellayUpdate();
        return is;
    }
    
    @Override
    public void onUpdate(ItemStack is, World world, Entity entity, int par4, boolean par5) {
    if (entity instanceof EntityPlayer) {
    EntityPlayer player = (EntityPlayer)entity;
    ItemStack current = player.getCurrentEquippedItem();
    NBTTagCompound nbt = is.getTagCompound();
    if (nbt != null) {
    if (nbt.hasKey("Delay")) {
    int delay = (int)nbt.getByte("Delay"); 
    if (delay > 0) {
    --delay;
                            dellayUpdate();
                            nbt.setByte("Delay", (byte)delay);
                            is.setTagCompound(nbt);
                        }
                    } else {
                        nbt.setByte("Delay", (byte)0);
                        is.setTagCompound(nbt);
                    }
                }
            }
        }
    
    public void dellayUpdate() {
        if (dellay > 0) --dellay;
    }

Этот код позволяет стрелять из оружия с задержкой. Но у меня проблемма и не как не могу ее решить. Как сделать так что бы при нажатие ПКМ сразу исполнялись 3 команды подряд без задержки а потом была задержка и потом опять выполнялись они
                                world.playSoundAtEntity(player, "random.explode", 1.5F, 1.8F);
myBullet blasterBullet = new myBullet(world, player, 4.0F);
world.spawnEntityInWorld(blasterBullet);   ?
При данной конфигурации выполняется только 1 команда потом задержка, потом 2 и задержка и 3 и задержка. А как это сделать без задержки? Заранее большое спасибо. Если кто то поможет мне сделать еще и ускорение оружия(через скайп тогда) - дам денежку :))
 
Многопоточность
Тебе же сказали делать в onUpdate. Там обновления чаще
[merge_posts_bbcode]Добавлено: 08.04.2015 19:07:18[/merge_posts_bbcode]

А,после всех действий(стрельбы,звука и тд) вставь delay=2.  До этого он не нужен
 
Dovakin написал(а):
Многопоточность
Тебе же сказали делать в onUpdate. Там обновления чаще
[merge_posts_bbcode]Добавлено: 08.04.2015 19:07:18[/merge_posts_bbcode]

А,после всех действий(стрельбы,звука и тд) вставь delay=2.  До этого он не нужен
Если так ставлю, то происходит у меня мнение что это делает клиент(Если не понял, дальше обьяняю) Не происходит нечего кроме стрельбы и то урон не наносит. Короче за сколько сделаешь ускорение и за сколько сделаешь нормальную задержку? Ибо меня это задолбало (вчера всю ночь сидел и успеху 0)
 
я тоже хочу дать совет: почему бы не выполнить 3 раза метод стрельбы, а потом задержка? это самое простое решение)
 
Назад
Сверху