sk9zist :l
Исправился
- 981
- 18
- 157
Как “телепортировать" игрока в землю. Ну, как бы чтобы он плавно в нее уходил полностью. Пробовал телепортировать, только вот получалось не правильно.
Ну, нет. Должен сказать, что я не настолько предсказуемый. Ктому-же такой мод уже есть. И даже если его нет на 1.12.2, я делаю немного другое.что-то вроде зыбучего песка?
Яш указал в теме эту версию, могли бы сразу сказать. Ладно, сейчас попробую и отпишуВроде на 1.12 это move просто.
Я знаю. Я уже пробовал делать с методом move но там нужен какой-то MoverType, игрока в него преобразовать нельзя поэтому я сделал так:по наводке искать
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
{
playerIn.noClip = true;
Entity entity = ((Entity) playerIn);
entity.move(MoverType.SELF, 0, -2, 0);
playerIn.noClip = false;
return new ActionResult<ItemStack>(EnumActionResult.PASS, playerIn.getHeldItem(handIn));
}
Наверное, надо сначала выключить коллизии, а потом двигать?entity.move(MoverType.SELF, 0, -2, 0); playerIn.noClip = false;
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
{
playerIn.noClip = true;
playerIn.move(MoverType.SELF, player.posX, player.posY-2, player.posZ);
playerIn.noClip = false;
return new ActionResult<ItemStack>(EnumActionResult.PASS, playerIn.getHeldItem(handIn));
}
Это телепортирует меня куда-то очень далеко, прибавляя к моим координатам мои координаты. Я сделал так:Возможно так.
Как?Тебе нужно где-то в тиках вызывать move определенное количество тиков.
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
{
playerIn.noClip = true;
Entity entity = ((Entity) playerIn);
double f = worldIn.getTotalWorldTime()+2;
if(f >= worldIn.getTotalWorldTime())
{
entity.move(MoverType.SELF, 0, -2, 0);
}
playerIn.noClip = false;
return new ActionResult<ItemStack>(EnumActionResult.PASS, playerIn.getHeldItem(handIn));
}
Entity entity = ((Entity) playerIn);
<-- Зачем игрока кастить в энтити, которым он и так является?double f = worldIn.getTotalWorldTime()+2;
if(f >= worldIn.getTotalWorldTime()){ //<-- Тоже самое, что if(true), смысла в этой проверке не будет
...
}
Ты говоришь мне советы, которые никак не помогают, сам бы зашёл в eclipse и протестил.которым он и так является?