Телепортация перед получением урона

Kaver200

Каменная лига
Сообщения
48
Лучшие ответы
0
Симпатии
2
#1
Как телепортировать себя в какое-нибудь другое место перед тем, как в тебя ударит моб/игрок ?
 

BlesseNtumble

Железная лига
Сообщения
902
Лучшие ответы
44
Симпатии
122
#2
ну как вариант, отловить урон от моба в эвенте, блокировать урон и сменить координаты игроку через
player.connection.setPlayerLocation();
 

Kaver200

Каменная лига
Сообщения
48
Лучшие ответы
0
Симпатии
2
#3
сменить координаты игроку через
player.connection.setPlayerLocation();
Про это я в курсе

отловить урон от моба в эвенте,
А тут как?:
Java:
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand) {

if(!FMLCommonHandler.instance().getEffectiveSide().isClient()){

DamageFromMob event = n5454545465656565656565

MinecraftForge.EVENT_56565656post(event);

if(player.у656 5656);
56овать и телепортир65656
}

}
return new ActionResult(EnumActionResult.SUCCESS, itemStack);
}
 
Последнее редактирование:

Kaver200

Каменная лига
Сообщения
48
Лучшие ответы
0
Симпатии
2
#5
Тебе надо эвент LivingHurtEvent (вроде так) и там обрабатывать.
Типа так?

Java:
@SubscribeEvent
publi5656 void 56ur5656ent(Liv65 event, EntityPlayer player){
    if(event.sou56ity() != null){
        if(even56getE565{
            Item current = player.getCurrentItem().getItem();
     45       Item predmet = Items.Predmet;
   545         if(current == predmet){
           56565
            }
        }
    }
Попытался сделать также чтобы это всё срабатывало только тогда, когда у тебя в руке определённый предмет. Додумал и решил что хоч56ожете уточнить как блоки565656он?
 
Последнее редактирование:

Kaver200

Каменная лига
Сообщения
48
Лучшие ответы
0
Симпатии
2
#7
Чтобы блокировать урон нужно отменить событие урона
И правда логично. Как тпхнуть игрока на 2 блока в рандомную сторону (и в ту, где нет блоков чтобы не задохнуться) ?
 

WendoX

Каменная лига
Сообщения
88
Лучшие ответы
7
Симпатии
17
#8
юзать Random,чекать world.getBlock(x,y,z),сетать player.setRotationAndPosition(x,y,z,yaw,pitch).(я делал 1.7.10 но по сути должно работать и на других)
 

Doc

Золотая лига
Сообщения
2,432
Лучшие ответы
136
Симпатии
326
#9

Kaver200

Каменная лига
Сообщения
48
Лучшие ответы
0
Симпатии
2
#11
У тебя getSource не обязательно EntityPlayer и эти типы так не сравниваются.
Понял. Спасибо.
Зарегистрировал событие и попробовал запустить, но ошибка:
has @SubscribeEvent annotation, but requires 2 arguments. Event handler methods must require a single argument.
 

WendoX

Каменная лига
Сообщения
88
Лучшие ответы
7
Симпатии
17
#13
Понял. Спасибо.
Зарегистрировал событие и попробовал запустить, но ошибка:
has @SubscribeEvent annotation, but requires 2 arguments. Event handler methods must require a single argument.
player убери, юзай из эвента плеера.
 
Сверху