помощь

  • Автор темы Автор темы K0lbasa
  • Дата начала Дата начала
  • Мы теперь в Discord

    Мы рады объявить, что теперь у нас есть сервер Discord. В честь этого мы проводим розыгрыш!
    Теперь вы можете легко связаться с нами и другими участниками сообщества,
    обмениваться идеями и получать обновления о нашей деятельности.

  • EXCLUSIVE ⚡

    Гость, покупая подписку, ты увеличишь свои доходы в разы!
    Мы делаем самые актуальные сборки, переводим лучшие приватные плагины, а так-же обновляем их и фиксим любые ошибки.
    Дешевле, чем студии и другие разработчики!

  • Приветствуем тебя Гость!⁣

    Недавно на форуме? Не знаешь как можно скачивать ресурсы?
    Для этого нужно лишь зарегистрировать на форуме, и получать доступ к профессиональным плагинам, оптимизированным настройкам.
    Здесь только самое лучшее.

K0lbasa

Пользователь
19 Фев 2021
255
0
16
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);
a.setHeadPose(new EulerAngle(-75, 0, 0));
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);

Как поставить голову ArmorStand ровно по прямой? BukkitAPI.
 
Для того, чтобы повернуть голову `ArmorStand` по прямой, можно воспользоваться методом `setHeadRotation` и передать ему `Vector`, указывающий необходимое направление взгляда. Например, если надо направить голову по направлению от `loc` в сторону точки `targetLoc`, то можно использовать следующий код:

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity(loc.clone().add(0.5, -0.3, 0), EntityType.ARMOR_STAND);

Location targetLoc = ... ; // координаты точки, куда направить голову

Vector direction = targetLoc.toVector().subtract(loc.toVector()).normalize();
// нормализованный вектор направления взгляда

a.setHeadRotation(direction);
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы вычисляем вектор направления взгляда как разность векторов от координат `loc` до `targetLoc`, нормализованный (т.е. с единичной длиной), и передаем его в метод `setHeadRotation` объекта `ArmorStand`.
 
Для того, чтобы повернуть голову `ArmorStand` по прямой, можно воспользоваться методом `setHeadRotation` и передать ему `Vector`, указывающий необходимое направление взгляда. Например, если надо направить голову по направлению от `loc` в сторону точки `targetLoc`, то можно использовать следующий код:

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity(loc.clone().add(0.5, -0.3, 0), EntityType.ARMOR_STAND);

Location targetLoc = ... ; // координаты точки, куда направить голову

Vector direction = targetLoc.toVector().subtract(loc.toVector()).normalize();
// нормализованный вектор направления взгляда

a.setHeadRotation(direction);
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы вычисляем вектор направления взгляда как разность векторов от координат `loc` до `targetLoc`, нормализованный (т.е. с единичной длиной), и передаем его в метод `setHeadRotation` объекта `ArmorStand`.
Нужно наклонить голову armorstand вниз, но по прямой.
 
Нужно наклонить голову armorstand вниз, но по прямой.
Для того чтобы наклонить голову `ArmorStand` вниз, можно воспользоваться методом `setHeadPose`, передав ему новый объект `EulerAngle`, где первый параметр будет отвечать за наклон вперед-назад (`pitch`). Чтобы получить объект `EulerAngle`, достаточно использовать конструктор этого класса, передав в него углы в радианах:

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Наклоняем голову вниз (-75 градусов)
a.setHeadPose(new EulerAngle(Math.toRadians(-75), 0, 0));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы вызываем метод `setHeadPose` объекта `ArmorStand`, передавая ему объект `EulerAngle`, где первый параметр - `pitch`, равный `-75` градусов (наклон вниз), а остальные параметры равны нулю.

Обратите внимание, что углы в методе `setHeadPose` указываются в радианах, поэтому мы используем метод `Math.toRadians` для конвертации значений в градусах в радианы.
 
Для того чтобы наклонить голову `ArmorStand` вниз, можно воспользоваться методом `setHeadPose`, передав ему новый объект `EulerAngle`, где первый параметр будет отвечать за наклон вперед-назад (`pitch`). Чтобы получить объект `EulerAngle`, достаточно использовать конструктор этого класса, передав в него углы в радианах:

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Наклоняем голову вниз (-75 градусов)
a.setHeadPose(new EulerAngle(Math.toRadians(-75), 0, 0));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы вызываем метод `setHeadPose` объекта `ArmorStand`, передавая ему объект `EulerAngle`, где первый параметр - `pitch`, равный `-75` градусов (наклон вниз), а остальные параметры равны нулю.

Обратите внимание, что углы в методе `setHeadPose` указываются в радианах, поэтому мы используем метод `Math.toRadians` для конвертации значений в градусах в радианы.
нужно чтобы предмет на его голове был перпендикулярен земле
 
нужно чтобы предмет на его голове был перпендикулярен земле
Для того, чтобы поставить предмет на голову `ArmorStand`, который будет расположен перпендикулярно земле, можно использовать метод `setHelmet`, в который передать предмет, который будет использоваться в качестве головного убора, например, `BARRIER` для невидимого предмета.

Для того, чтобы расположить этот предмет перпендикулярно земле, нужно создать специальный объект `Vector`, который будет выступать в качестве направления взгляда `ArmorStand`. Затем, этот вектор передается методу `setHeadPose`, который устанавливает ориентацию головы `ArmorStand`.

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Наклоняем голову вниз (-75 градусов)
a.setHeadPose(new EulerAngle(Math.toRadians(-75), 0, 0));

// Определяем вектор направления взгляда (1, 0, 0), чтобы предмет был перпендикулярен земле
Vector direction = new Vector(1, 0, 0);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет BARRIER на голову
a.setHelmet(new ItemStack(Material.BARRIER));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы используем метод `setHelmet` для установки предмета на голову `ArmorStand`. Для того, чтобы расположить предмет перпендикулярно земле, мы определяем вектор направления взгляда, где первая компонента вектора `1` для того, чтобы предмет был перпендикулярен земле по горизонтали. Затем мы устанавливаем это направление взгляда в метод `setHeadPose`.

Дополнительно, мы создаем копию `direction` и умножаем ее на `Math.PI / 2`, чтобы повернуть вектор направления взгляда на 90 градусов, чтобы предмет был перпендикулярен земле по вертикали. Этот повернутый вектор передается методу `toEulerAngle`, чтобы получить объект `EulerAngle`.
 
Для того, чтобы поставить предмет на голову `ArmorStand`, который будет расположен перпендикулярно земле, можно использовать метод `setHelmet`, в который передать предмет, который будет использоваться в качестве головного убора, например, `BARRIER` для невидимого предмета.

Для того, чтобы расположить этот предмет перпендикулярно земле, нужно создать специальный объект `Vector`, который будет выступать в качестве направления взгляда `ArmorStand`. Затем, этот вектор передается методу `setHeadPose`, который устанавливает ориентацию головы `ArmorStand`.

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Наклоняем голову вниз (-75 градусов)
a.setHeadPose(new EulerAngle(Math.toRadians(-75), 0, 0));

// Определяем вектор направления взгляда (1, 0, 0), чтобы предмет был перпендикулярен земле
Vector direction = new Vector(1, 0, 0);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет BARRIER на голову
a.setHelmet(new ItemStack(Material.BARRIER));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы используем метод `setHelmet` для установки предмета на голову `ArmorStand`. Для того, чтобы расположить предмет перпендикулярно земле, мы определяем вектор направления взгляда, где первая компонента вектора `1` для того, чтобы предмет был перпендикулярен земле по горизонтали. Затем мы устанавливаем это направление взгляда в метод `setHeadPose`.

Дополнительно, мы создаем копию `direction` и умножаем ее на `Math.PI / 2`, чтобы повернуть вектор направления взгляда на 90 градусов, чтобы предмет был перпендикулярен земле по вертикали. Этот повернутый вектор передается методу `toEulerAngle`, чтобы получить объект `EulerAngle`.
Параллельно земле*
 
Параллельно земле*
Для того, чтобы поставить предмет на голову `ArmorStand`, который будет расположен параллельно земле, нужно определить объект `Vector`, который будет представлять ориентацию головы `ArmorStand`.

Например, если надо поставить предмет таким образом, чтобы он смотрел параллельно земле вправо, можно создать объект `Vector` со значениями `(0, 0, -1)`, и затем передать этот вектор методу `setHeadPose`, чтобы установить ориентацию головы.

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Определяем направление взгляда (1, 0, 0), чтобы предмет был параллелен земле
Vector direction = new Vector(1, 0, 0);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет BARRIER на голову
a.setHelmet(new ItemStack(Material.BARRIER));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы создаем объект `Vector` `direction` со значениями `(1, 0, 0)`, чтобы установить ориентацию головы `ArmorStand` параллельно земле. Затем мы умножаем этот вектор на `Math.PI / 2`, чтобы повер
 
Для того, чтобы поставить предмет на голову `ArmorStand`, который будет расположен параллельно земле, нужно определить объект `Vector`, который будет представлять ориентацию головы `ArmorStand`.

Например, если надо поставить предмет таким образом, чтобы он смотрел параллельно земле вправо, можно создать объект `Vector` со значениями `(0, 0, -1)`, и затем передать этот вектор методу `setHeadPose`, чтобы установить ориентацию головы.

```
Location loc = e.getBlock().getLocation();
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.3, 0)), EntityType.ARMOR_STAND);

// Определяем направление взгляда (1, 0, 0), чтобы предмет был параллелен земле
Vector direction = new Vector(1, 0, 0);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет BARRIER на голову
a.setHelmet(new ItemStack(Material.BARRIER));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы создаем объект `Vector` `direction` со значениями `(1, 0, 0)`, чтобы установить ориентацию головы `ArmorStand` параллельно земле. Затем мы умножаем этот вектор на `Math.PI / 2`, чтобы повер
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);
 
поменял armorstand:


ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);
Этот код создает новый объект `ArmorStand` в местоположении `loc`, смещенном на координаты `(0.5, -0.65, -0.3)` относительно его текущих координат.

Чтобы изменить параметры этого объекта, можно использовать
 
Этот код создает новый объект `ArmorStand` в местоположении `loc`, смещенном на координаты `(0.5, -0.65, -0.3)` относительно его текущих координат.

Чтобы изменить параметры этого объекта, можно использовать
я говорю адаптируй тот код под этот
 
я говорю адаптируй тот код под этот
Код для создания объекта `ArmorStand` и его настройки:

```
Location loc = ... ; // ваше местоположение
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);

// Настройки armorstand
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

Вы можете заменить значение `loc` на ваше местоположение и настроить переменные методов `setSmall`, `setInvulnerable`, `setCanMove` и `setGravity`, чтобы изменить параметры объекта `ArmorStand`.
 
Код для создания объекта `ArmorStand` и его настройки:

```
Location loc = ... ; // ваше местоположение
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);

// Настройки armorstand
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

Вы можете заменить значение `loc` на ваше местоположение и настроить переменные методов `setSmall`, `setInvulnerable`, `setCanMove` и `setGravity`, чтобы изменить параметры объекта `ArmorStand`.
поставь предмет на его голове параллельно земле. BukkitAPI.
 
поставь предмет на его голове параллельно земле. BukkitAPI.
Чтобы поставить предмет на голову `ArmorStand`, который будет расположен параллельно земле, нужно определить объект `Vector`, который будет представлять ориентацию головы `ArmorStand`.

Например, если надо поставить предмет таким образом, чтобы он смотрел параллельно земле вправо, можно создать объект `Vector` со значениями `(0, 0, -1)`, и затем передать этот вектор методу `setHeadPose`, чтобы установить ориентацию головы.

```
Location loc = ... ; // ваше местоположение
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);

// Определяем направление взгляда (0, 0, -1), чтобы предмет был параллелен земле
Vector direction = new Vector(0, 0, -1);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет на голову
a.setHelmet(new ItemStack(Material.DIAMOND_HELMET));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы создаем объект `Vector` `direction` со значениями `(0, 0, -1)`, чтобы установить ориентацию головы `ArmorStand` параллельно земле. Затем мы умножаем этот вектор на `Math.PI / 2`, чтобы повернуть его на 90 градусов, чтобы предмет был перпендикулярен земле по вертикали. Этот повернутый вектор передается методу `toEulerAngle`, чтобы получить объект `EulerAngle`.

Дополнительно, мы устанавливаем на голову `ArmorStand` предмет, используя метод `setHelmet`, передав объект `ItemStack` с предметом, который необходимо поставить на голову. В данном примере используется алмазный шлем.
 
Чтобы поставить предмет на голову `ArmorStand`, который будет расположен параллельно земле, нужно определить объект `Vector`, который будет представлять ориентацию головы `ArmorStand`.

Например, если надо поставить предмет таким образом, чтобы он смотрел параллельно земле вправо, можно создать объект `Vector` со значениями `(0, 0, -1)`, и затем передать этот вектор методу `setHeadPose`, чтобы установить ориентацию головы.

```
Location loc = ... ; // ваше местоположение
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity((loc.clone().add(0.5, -0.65, -0.3)), EntityType.ARMOR_STAND);

// Определяем направление взгляда (0, 0, -1), чтобы предмет был параллелен земле
Vector direction = new Vector(0, 0, -1);
a.setHeadPose(direction.clone().multiply(Math.PI / 2).toEulerAngle());

// Устанавливаем предмет на голову
a.setHelmet(new ItemStack(Material.DIAMOND_HELMET));

a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы создаем объект `Vector` `direction` со значениями `(0, 0, -1)`, чтобы установить ориентацию головы `ArmorStand` параллельно земле. Затем мы умножаем этот вектор на `Math.PI / 2`, чтобы повернуть его на 90 градусов, чтобы предмет был перпендикулярен земле по вертикали. Этот повернутый вектор передается методу `toEulerAngle`, чтобы получить объект `EulerAngle`.

Дополнительно, мы устанавливаем на голову `ArmorStand` предмет, используя метод `setHelmet`, передав объект `ItemStack` с предметом, который необходимо поставить на голову. В данном примере используется алмазный шлем.
нет такого метода toEulerAngle. У меня Paper 1.16.5.
 
нет такого метода toEulerAngle. У меня Paper 1.16.5.
Извините за путаницу, метод `toEulerAngle()` был введен только в версии 1.17.0.

Для версии 1.16.5 вы можете воспользоваться методом `setHeadPose()`, которому нужно передать объект `EulerAngle`, а не объект `Vector`, чтобы установить ориентацию головы `ArmorStand`. В данном случае мы можем создать объект `EulerAngle`, повернуть его на
 
Извините за путаницу, метод `toEulerAngle()` был введен только в версии 1.17.0.

Для версии 1.16.5 вы можете воспользоваться методом `setHeadPose()`, которому нужно передать объект `EulerAngle`, а не объект `Vector`, чтобы установить ориентацию головы `ArmorStand`. В данном случае мы можем создать объект `EulerAngle`, повернуть его на
ну напиши код
 
Код для создания объекта `ArmorStand` и установки предмета на его голову параллельно земле в версии 1.16.5 будет примерно таким:

```
Location loc = ... ; // ваше местоположение
ArmorStand a = (ArmorStand) loc.getWorld().spawnEntity(loc, EntityType.ARMOR_STAND);

// Определяем направление взгляда (0, 0, -1), чтобы предмет был параллелен земле
Vector direction = new Vector(0, 0, -1);

// Создаем объект EulerAngle и поворачиваем его на 90 градусов по оси Y, затем передаем его в метод setHeadPose
EulerAngle angle = new EulerAngle(0, Math.PI / 2, 0);
a.setHeadPose(angle);

// Устанавливаем предмет на голову
a.setHelmet(new ItemStack(Material.DIAMOND_HELMET));

// Настройки armorstand
a.setSmall(false);
a.setInvulnerable(true);
a.setCanMove(false);
a.setGravity(false);
```

В этом примере мы создаем объект `ArmorStand` в местоположении `loc`, затем определяем направление взгляда `direction` и создаем объект `EulerAngle`, который поворачивается на 90 градусов по оси Y и устанавливается в методе `setHeadPose`. Затем мы устанавливаем предмет на голову `ArmorStand` с помощью метода `setHelmet`, передав объект `ItemStack` с предметом, который необходимо поставить на голову. В данном примере используется алмазный шлем.

Дополнительно мы устанавливаем несколько параметров объекта `ArmorStand` с помощью методов `setSmall`, `setInvulnerable`, `setCanMove` и `setGravity`, но вы можете настроить их на свое усмотрение.
 

Помочь проекту 💕

Собрано
"52,204.60" ₽
Цель
"60,000.00" ₽

Новые сообщения

Последние ресурсы