Работа с NBT тегами.

68
0
Здравствуйте подскажите пожалуйста как изменить Damage предмета через NBT(через setdamage предмет дергается) пытался при помощи:
Код:
is.getTagCompound().setInteger("Damage", 0);
Происходит краш.

А также интересует как создать свой NBT тег пытался:
Код:
is.getTagCompound().setBoolean("Pricel", true);
Тоже краш.

Заранее спасибо за ответ.
 
Нужно сначала создать стаку тег.
Код:
if (is.stackTagCompound == null) is.stackTagCompound = new NBTTagCompound();
 
Ванильный "Damage" является Short'ом, а не Integer.
Сначала нужно проверить, не равен нулю "is", потом проверить "is.getTagCompound()" не равен нулю, затем проверить есть ключ "is.getTagCompound().hasKey("Damage")", а уж потом делать манипуляции.
 
timaxa007 написал(а):
Ванильный "Damage" является Short'ом, а не Integer.
Сначала нужно проверить, не равен нулю "is", потом проверить "is.getTagCompound()" не равен нулю, затем проверить есть ключ "is.getTagCompound().hasKey("Damage")", а уж потом делать манипуляции.
Спасибо большее. Но он вроди как меняет не ванильный Damage т.к он не отображается. Изменял Damage так:
Код:
is.getTagCompound().setShort("Damage", (short) (is.getTagCompound().getShort("Damage") + 1));
Но то что он меняет какой-то Damage это точно (Проверял Println`ом) .
 
Это простая переменная в nbt, она ни на что не влияет.
Это всё равно что:
int damage = 5;
 
svk написал(а):
Это простая переменная в nbt, она ни на что не влияет.
Это всё равно что:
int damage = 5;
Ну ок, я просто думал что можно как-то поменять через ndt damage предмета.
[merge_posts_bbcode]Добавлено: 29.03.2015 22:00:04[/merge_posts_bbcode]

А хотя ладно я все равно demage хотел отдельно отрендерить (подобно Здоровью еде и т.д). Огромное спасибо GloomyFolken и Timaxa007 за помощь.

Закройте пожалуйста тему.
 
Назад
Сверху