Время эффекты при надевании брони

Версия Minecraft
1.10.2
114
2
Ух, прикольно сделали форум. Приятно, когда развивают то, что тебе действительно нравиться. Но все же, у меня появился вопрос. Как мне сделать, чтобы при надевании моей брони, время её эффектов было равно = 0, ну как-бы они есть, но время просто 0. Ибо, по умолчанию идет 7 секунд и потом опять повтор, в этом и минус. Что игрок, надевая и снимая все броньки, получает еще уйму эффектов с них. Вообщем, надеюсь вы меня поняли. Сам код при надевании, вот:
Java:
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemstack) {   
    if(player.inventory.armorItemInSlot(3) != null && player.inventory.armorItemInSlot(3).getItem() == RPGarmor.PalladiumHelmet
        && player.inventory.armorItemInSlot(2) != null && player.inventory.armorItemInSlot(2).getItem() == RPGarmor.PalladiumChestplate
        && player.inventory.armorItemInSlot(1) != null && player.inventory.armorItemInSlot(1).getItem() == RPGarmor.PalladiumLeggings
        && player.inventory.armorItemInSlot(0) != null && player.inventory.armorItemInSlot(0).getItem() == RPGarmor.PalladiumBoots) {
        this.effectPlayer(player, Potion.getPotionById(5), 0);
        this.effectPlayer(player, Potion.getPotionById(2), 0);
    }
}

private void effectPlayer(EntityPlayer player, Potion potion, int amplifier) {
    if(player.getActivePotionEffect(potion) == null || player.getActivePotionEffect(potion).getDuration() <= 1)
        player.addPotionEffect(new PotionEffect(potion, 159, amplifier, true , true));
}
 
Последнее редактирование модератором:
Уу, старый добрый гайд от БедрокМайнера) Можно не юзать этот метод, а юзать ванильный, и каждый тик выдавать там на один тик, пока броня есть. Но этот метод такой себе если честно. Я думаю можно было бы как-то проверять лучше, в момент надевания брони выдавать эффект, а в момент снятия или смерти забирать...
 
Уу, старый добрый гайд от БедрокМайнера) Можно не юзать этот метод, а юзать ванильный, и каждый тик выдавать там на один тик, пока броня есть. Но этот метод такой себе если честно. Я думаю можно было бы как-то проверять лучше, в момент надевания брони выдавать эффект, а в момент снятия или смерти забирать...
Просто понимаешь, в AdventOfAscesion, при надевании брони там время эффекта равна = 0, но он есть, а как снимешь - сразу пропадает. Может там просто ограничение на время повторного эффекта стоит и оно равно 0, но как это сделать - хз. И кстати, че за BedrockMiner? :D
 
Код с его гайда, тоже юзал когда-то. Ну так в онАрморТик вместо this.effectPlayer(player, Potion.getPotionById(5), 0); напиши player.addPotionEffect(new PotionEffect(potion, 0, amplifier, true , true)); И должен быть такой-же эффект как и там. Но еще раз повторюсь, метод неоч как по мне
 
Код с его гайда, тоже юзал когда-то. Ну так в онАрморТик вместо this.effectPlayer(player, Potion.getPotionById(5), 0); напиши player.addPotionEffect(new PotionEffect(potion, 0, amplifier, true , true)); И должен быть такой-же эффект как и там. Но еще раз повторюсь, метод неоч как по мне
Слушай, мне наоборот понравился такой способ, вместо 159 поставил 0, и круть. Время на нуле, но эффект не спадает. А если убираю часть брони - слет эффекта. Я вообще код брал у ChampionAsh, но у него гайды по 10 часов идут, это жесть. Шучу кнш, не 10, но часы там точно.
 
в момент надевания брони выдавать эффект, а в момент снятия или смерти забирать...
Фишка в том, что такого эвента нет. И тебе либо придётся самому каким-то раком его пилить и в нём накидывать эффект на Integer.MAX_VALUE тиков, либо просто каждый тик вешать зельку на один-два тика и не парить себе мозг.
 
Назад
Сверху