Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Создание кастомной пули из стрелы

Krongss_fur

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Krong
Хочу сделать пулю(у нас это стрела или какой то другой снаряд) для огнестрл.оружия но это не суть. Выбрал с помощью стрелы, вообще задумка такая будет что рпшник будет показывать что это не стрела, а пуля. Допустим имеем такой:

Код:
           Arrow arrow = (Arrow) location.getWorld().spawnEntity(location, EntityType.ARROW);
           arrow.setShooter(plr);
Суть такова что бы стрела вылетела из игрока к примеру и летела на указанные координаты, тут же в примере берётся позиция игрока и к x прибавляется 5. Но когда происходит такое действие просто спавнится стрела головой вниз в земле.
1. надо сделать нету понятия как называется скорее всего Vector на значение что бы она была повёрнута горизонтально а не вертикально.
2. Что бы вылетала из игрока.
Я уже понимаю как могло бы быть иначе, а именно что с помощью пакетов рендерится как будто она вылетела из игрока и летит куда то, и в случае попадания дамаг игроку даётся(но про дамаг лишнее).
Так вот, скажите пожалуйста надо делать через пакеты, или можно через api? Если через api то мне надо узнать по 1 и 2 пункту как действовать.
 
Arrow.Class можно свой класс стрелы написать где будет уже заданы свои значения?
Создание кастомных сущностей через Bukkit API практически невозможно, тут лишь в NMS лезть. Но зачем? Большинство параметров можно задать через, собственно, API.
 
Создание кастомных сущностей через Bukkit API практически невозможно, тут лишь в NMS лезть. Но зачем? Большинство параметров можно задать через, собственно, API.
Понял
 
Да
Спавнишь стрелу в локе игрока и ей setVector()
Вектор можно задать разностями координат (старта и конечной точки)
Давай те ещё раз, мы получается spawnEntity(plr.location, EntityType.Arrow) это мы спавним от куда ей лететь, потом задаём вектор координат куда должна она лететь через методы setX, setY, setZ? Или что указывать при работе с вектором?
 
Давай те ещё раз, мы получается spawnEntity(plr.location, EntityType.Arrow) это мы спавним от куда ей лететь, потом задаём вектор координат куда должна она лететь через методы setX, setY, setZ? Или что указывать при работе с вектором?
Вектор задаёт направление и скорость движения. Про вектора множество статей существует
 
И да, исходя из тестов я понял что надо задавать не локацию игрока, а создавать новую локацию которая по координатам на 0.2~ значения будет от игрока отличаться т.к тогда его убивает потому что в нём стрела спавниться т.е убили.
 
Последнее редактирование:
image.png

По гайду сделал что то такое, в итоге стрела всё равно спавнится перед игроком в 1 блок по x и всё. Вроде задано что по идеи надо было бы пролететь 4 блока а так.
 
image.png

По гайду сделал что то такое, в итоге стрела всё равно спавнится перед игроком в 1 блок по x и всё. Вроде задано что по идеи надо было бы пролететь 4 блока а так.
Вектор должен быть разностью конечной и начальной локи
 
немного не понял...
1) Гуглишь правило вычитания векторов
2) Открываешь паинт и рисуешь из нуля два вектора - к игроку и к нужной позиции
3) По нагугленному правилу рисуешь стрелочку из 1 в 2
4) Записываешь это кодом
profit ?
 
1) Гуглишь правило вычитания векторов
2) Открываешь паинт и рисуешь из нуля два вектора - к игроку и к нужной позиции
3) По нагугленному правилу рисуешь стрелочку из 1 в 2
4) Записываешь это кодом
profit ?
Теперь ясно :nerd:
 

Поделиться этой страницей

Назад
Верх