Сохранение переменной при выходе с игры.

Версия Minecraft
1.5+
19
1
0
Подскажи как можно переменную при выходи с игры сохранять с помощью IExtendedEntityProperties. Если не трудно буду очень благодарен. :)
 
202
14
36
 
67
1
3
1573143509099.png
1573143521413.png
Насколько я знаю, IExtendedEntityProperties отсутствуют в этой версии

Вроде в версиях 1.5+ это делается как-то так (где entityPlayer - это игрок):
Java:
NBTTagCompound tag = entityPlayer.getEntityData();

NBTBase modeTag = tag.getTag("MyInteger");  // получение тага по имени
if (modeTag != null) {  // если tag != null, т.е. был создан раньше, то можно извлечь значение
    entityPlayer.addChatMessage("Current int:" + ((NBTTagInt)modeTag).data);  // извлекаем значение и выводим в чат игроку
}

tag.setInteger("MyInteger", 150); //сохранение переменной со знчением 150 (создаётся таг NBTTagInt, с data=150)
Для работы со значениями других типов, там есть такие же методы, с отличающимся названием. Для кастомного класса немного сложнее, удачи кароче.
 
Последнее редактирование:
67
1
3
А если мне нужно сохранить не одну переменную допустим переменная int i = 0; и при убийстве моба она прибовляеться и мне нужно сохранить ту которая последняя.
это всё ещё одна переменная.
Допустим, ты хочешь её сохранять с именем MobsKilledCount, тогда увеличение сохранённого значение на 1 будет выглядить так:
Java:
NBTTagCompound tag = entityPlayer.getEntityData();
NBTBase modeTag = tag.getTag("MobsKilledCount");

// Начальное значение. Мы будем использовать его, если переменная с именем MobsKilledCount ещё не была ни разу сохранена
int i = 0;

// Если переменная с именем MobsKilledCount присутствует,
// то используем сохранённое значение
if (modeTag != null) {
    i = ((NBTTagInt)modeTag).data;
}

i++;  // добавляем 1 к предыдущему значению

// Записываем новое значение.
// Прошу заметить, что если значение уже есть, оно будет просто перезаписано
// (старое будет заменено на новое),
// а, если его нет, то просто создасться новая "переменная" с указанным значением.
tag.setInteger("MobsKilledCount", i);
Рекомендую поизучать работу с NBT, т.к. если ты хочешь написать большой мод на 1.5+, тебе скорее всего это очень пригодится.
 
Сверху