Воздух под водой

318
12
Здравствуйте. Как сделать, если на тебя надет шлем - уровень воздуха под водой не уменьшается. Или всегда поднимается на 10 пузырьков. Какой метод за это отвечает?
 
Точно не знаю но вот как в классе водного моба прописано:
Код:
public void onEntityUpdate()
    {
        int i = this.getAir();
        super.onEntityUpdate();

        if (this.isEntityAlive() && !this.isInWater())
        {
            --i;
            this.setAir(i);

            if (this.getAir() == -20)
            {
                this.setAir(0);
                this.attackEntityFrom(DamageSource.drown, 2.0F);
            }
        }
        else
        {
            this.setAir(300);
        }
    }
}
 
public void onUpdate(ItemStack is, World world,
Entity entity, int p_77663_4_, boolean inHand) {
if(entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer)entity;
{
int i = player.getAir();

if (player.isEntityAlive() && !player.isInWater())
{
--i;
player.setAir(i);

if (player.getAir() == -20)
{
player.setAir(0);
player.attackEntityFrom(DamageSource.drown, 2.0F);
}
}
else
{
player.setAir(300);

}
}
}
Не работает :C
 
Код:
в_ините_писать{
MinecraftForge.EVENT_BUS.register(new Lol());
}

class Lol{

@SubscribeEvent
public void onEntityUpdate(EntutyUpdateEvent e){
  if(e instanceof EntityPlayer && надетШлем-бла-бла){
    e.setAir(300);
  }
}
}
[merge_posts_bbcode]Добавлено: 06.08.2015 20:34:59[/merge_posts_bbcode]

В том-же ифе можешь шлему дамаг или нбт менять
[merge_posts_bbcode]Добавлено: 06.08.2015 20:37:35[/merge_posts_bbcode]

Теперь ты знаешь, как делать что-либо с энтитей каждый тик. Имей это знание и используй его. Оно применимо, когда нужно влиять на тикеры и прогресс-бары и их изменения(жизнь, дамаг, зелья, тот-же воздух) и для неких частых проверок(стоит ли игрок *где-либо*, находится ли в воде, аду или воздухе) и других подобных местах. Что-либо, что ты бы сам засунул в апдейт энтити, но не можешь. Вернее, можешь, при помощи этого события
[merge_posts_bbcode]Добавлено: 06.08.2015 20:38:54[/merge_posts_bbcode]

Внимание, *иметь* это знание нужно в смысле владеть им, а не в других
 
Назад
Сверху