consumeInventoryItem

Как прописать чтоб потратился предмет который у тебя в руке ? 



entityplayer.inventory.consumeInventoryItem(MyMod.MyItem);
 
Код:
ItemStack current = player.getCurrentEquippedItem();
if (current != null) --current.stackSize;
 
timaxa007 написал(а):
Код:
ItemStack current = player.getCurrentEquippedItem();
if (current != null) --current.stackSize;
Слушай, тимох, а почему у меня не работает --stack.stakSize? Он просто мог понизить стак на 1, но он не удалялся если оставался 1 предмет. Даже пытался приравнивать current = null; - стак не исчезал.
 
svk, без понятия. Может какие-то ещё условия мешаю или типа того. Попробуй типа этого:
Код:
ItemStack current = player.getCurrentEquippedItem();
if (current != null) {
    if (current.stackSize <= 1) current = null; else --current.stackSize;
}
 
timaxa007 написал(а):
svk, без понятия. Может какие-то ещё условия мешаю или типа того. Попробуй типа этого:
Код:
ItemStack current = player.getCurrentEquippedItem();
if (current != null) {
    if (current.stackSize <= 1) current = null; else --current.stackSize;
}
Так я и пытался сделать current = null - вообще нет результата.
Пришлось давать НБТ стаку, и прорыскивать инвентарь в поисках нужного слота, что-бы его на нулл поставить.
 
Ещё раз повторюсь. Я не знаю (так как не вижу его), что мешает твоему коду для удовлетворительного условия. У меня и без приравниванию нулевому значению сработало как надо. Может у тебя в условиях стоит, чтобы код работал, если больше 1 (i > 1), а не больше и равно 1 (i >= 1) [надо использовать больше и равно (i >= 1)].
[merge_posts_bbcode]Добавлено: 12.04.2015 13:29:04[/merge_posts_bbcode]

Agravaine, может быть.
 
Есть методы в Minecraft, которое отвечают за подобное:
InventoryBasic.decrStackSize(int p_70298_1_, int p_70298_2_);
Minecraft.func_147121_ag();

Сделал ещё пару тестов и выяснил:
- Если предмет являлся с максимальным повреждением больше нуля (т.е. предмет который ломается), то предмет не успевал исчезать, так как уже происходили изменения в предмете (включая не стандартные NBT).
- Если предмет являлся с максимальным повреждением ноль (т.е. не назначая максимального повреждения, и было можно использовать на подобии как у красителей), то предметы исчезали (хоть по кнопке атаки и хоть по кнопке использования).

Ну как-то так.
 
Назад
Сверху