Удерживание...

timaxa007

Модератор
5,831
409
676
Dovakin написал(а):
Как сделать ,чтобы,например,чем дольше жмешь на пкм(при этом анимация setItemInUse)тем больше нанесется урона итему. Зажимаем,а итем дамагается
В конструкторе нужно указать его максимальное повреждение, типа так:
Код:
setMaxDamage(1024);
Затем нужные методы:
onItemRightClick в сучаи если игрок нажал на ПКМ, то как-бы мы игроку отправляем сообщение, что мы его используем:
Код:
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
    player.setItemInUse(is, getMaxItemUseDuration(is));
    return is;
}
На сколько долго будет у нас максимальное зажатие или типа того:
Код:
public int getMaxItemUseDuration(ItemStack is) {
    return 72000;
}
В onUpdate проверяем: игрок использует-ли он предмет, если да, то на стороне серверной стороны он будет повреждать этот предмет:
Код:
public void onUpdate(ItemStack is, World world, Entity entity, int tick, boolean flag) {
    if (entity instanceof EntityPlayer) {
        if (((EntityPlayer)entity).isUsingItem()) {
            if (!world.isRemote) {
                is.damageItem(1, (EntityPlayer)entity);
            }
        }
    }
}
Ну как-то так...
Если не хочешь, чтобы он каждый тик повреждался, то можно использовать мировое время игры:
if (world.getWorldTime() % 20 == 0) {}
... типа каждую секунду (20 тиков = 1 секунде). Либо использовать переменную, ну и т.д.
У каждого может быть свой подход к создаю подобного кода и т.п.
 
Пожалуйста.
 
И так,самое время поднять тему.Предмет дёргается при отнимании в каждом тике.А мне нужно именно каждый тик
 
Назад
Сверху