[1.5.2]Блок с прыжком!

19
0
Всем привет!:p
Как сделать невидимый, проходимый блок чтобы, при входе в него тебя подкидывало примерно на 20-30 блоков.
(Как делать невидимый и проходимый блок я знаю, просто вдруг вы сразу дадите уже полностью готовый код:angel: )
Заранее спасибо!
 
В класс блока добавь метод
Код:
    @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
            entity.motionY = 1.0D;
    }
 
TheAndrey написал(а):
В класс блока добавь метод
Код:
    @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
            entity.motionY = 1.0D;
    }
Спасибо!

Edit: Не пишите в цитатах. Коняшка.
 
У меня эта вещь на 1.6.4 не работает, жаль, не понимаю почему...
Код:
  @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
            entity.motionY+=9.0D;
    }
 
NATALI написал(а):
У меня эта вещь на 1.6.4 не работает, жаль, не понимаю почему...
Код:
  @Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
            entity.motionY+=9.0D;
    }
Небось блок полноразмерный. В таком случае надо или чуть-чуть уменьшить границ блока, до 0.99D от обычного, либо использовать onEntityWalking.
Ибо у меня на том же костре всё работает (тоже 1.6.4):
v6BjL3o.png
 
А как его правильно использовать? Я в отношении этого немного глупа, хотелось бы узнать, вот например: 
Код:
 public void onEntityCollidedWithBlock(){    }

onEntityCollidedWithBlock - вот что это, по моему он влияет на всё что будет в него написано, с начала я думала что это просто название, но потом думаю "он наверняка говорит jav-e о чём будет писаться в нём. В общем до сих пор не поняла, буду учиться. Ну так вот, то что я написала очень глупо, я не знаю что написать за место него. 
Код:
      @Override
      public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
          if(entity instanceof EntityLivingBase){
              entity.motionY+=9.0D;
          }
        }

Я написала так, но понятно дело, onEntity... тут наверно не к месту, но без public void будут ошибки, типо не обозначила ничего и т.д... В общем, эм, я знаю что наверняка сейчас такой чуши наговорила. Не подскажите, что, как сделать? Если ткнёте на инфу об этом, то буду благодарна, изучу, пойму.
 
Больше равена слушай. Конечно, ведь проверка типа сущности решит проблему. Особенно, если без неё подлетают все сущности (включая игрока), а с ней - только живые (не предметы и прочее), т.е. игрок тоже. Офигенная подсказка, да.

Дело в том, что этот метод вызывается когда игрок попадает в границы блока. Если прописать этот метод обычному полноразмерному блоку - хрен он сработает, потому что игра не дает зайти игроку в блок. Поэтому надо уменьшить физические границы блока для сущностей - с помощью метода
Код:
setBlockBounds
либо
Код:
addCollisionBoxesToList

Agravaine написал(а):
Что делает setBlockBoundsOnState и зачем он стоит в addCollisionBoxesToList?
Лишная хрень осталась после моих тестов, можно выпилить. setBlockBounds из конструктора хватит. Вроде как.
 
[font=Verdana, Helvetica, Arial, sans-serif]Oldestkon Прости, не увидела твой предыдущий комментарий, вот, сейчас попробую, спасибо за информацию, теперь поняла, буду пробовать)[/font]
[merge_posts_bbcode]Добавлено: 22.11.2014 17:37:19[/merge_posts_bbcode]

Спасибо большое, всё работает, изменила на [font=Verdana, Helvetica, Arial, sans-serif]onEntityWalking и всё заработало. Спасибо[/font]
 
Назад
Сверху