Разный эффект при номере использования

Версия Minecraft
1.7.10

Led

291
3
0
Здравствуйте!

Возник такой вопрос, как давать разные эффекты в зависимости от порядкового номера использования предмета?

Пример:
Выпил первую чарку эля - накладывается эффект регенерации и сопротивления
Выпил вторую - уровень эффектов повышается, но есть шанс еще схватить тошноту
Выпил третью - аналог второй, шанс тошноты больше
.....
Выпипил n-ную - сброс всех эффектов, медлительность, слепота и тошнота
Выпил n+1 - иссушение

Заранее спасибо
 
210
1
19
Код:
int swallows = player.getEntityData().getInteger("Swallows");
if(swallows == null) swallows = 0;
player.getEntityData().setInteger("Swallows", swallows  + 1);

И где-нибудь в PlayerTick что-то вроде такого:
Код:
int seconds = 30; // раз в полминуты -1 стакан, трезвеем
if(player.worldObj.rand.nextInt(seconds * 20) == 0){
int swallows = player.getEntityData().getInteger("Swallows");
if(swallows != null && swallows > 0){
player.getEntityData().setInteger("Swallows", swallows  - 1);
}
}
 
210
1
19
Agravaine написал(а):
swallows != null
Ого, а когда это у нас примитив может быть нулл?

Не может? Ну, ладно, значит, этот фрагмент можно убрать. Просто уже столько раз ловил NullPointer, что подобные проверки пишу к месту и не к месту.
 
210
1
19
Dahaka написал(а):
В блокноте код пишешь? В нормальной IDE тебе бы не позволили сделать такой косяк.

Не уверен, кому вопрос, но если мне, то в Eclipse.


Led написал(а):
А что это по нагрузке будет?
Я вообще стараюсь избегать всего подобного onUpdate, ибо параноик

Ну, видимо, по нагрузке будет ничего страшного. Ведь вызываться будет только примерно 1 раз в 20 тиков.
 
2,505
81
397
А по-другому ты никак не сделаешь уменьшение глотков.
Волноваться о нагрузке это правильно. Просто не нужно создавать каждый тик какие-нибудь массивы и прочее. Вообще лучше ничего не создавать нового. А вообще, чтобы развеять все волнения, посмотри, какая куча всего там итак выполняется.
И конечно же методы, которые выполняются наиболее часто, должны быть оптимизированы по максимуму.
 

Led

291
3
0
Я просто даже волнуюсь за ванильные сундуки, которые тикают, проверяя, не проиграть ли им анимацию

Хотя я весьма ламер, у меня чуть ли не паника, что я привнесу лишние лаги в Майнкрафт
 
Сверху