Skip to content

Создание и спавн нпс

Создание персонажа

Для создания нпс есть следующий шаблон:

Шаблон

//Здесь мы создаём переменную-делегат, через которую будем обращаться к нашему персонажу. Сам нпс будет заспавлен сразу же как будет вызван этот участок кода.
val npc by NPCEntity.creating {
    name = "Виталик" //Имя персонажа
    model = "hollowengine:models/entity/player_model.gltf" //Путь к модели персонажа
    attributes = Attributes( //список атрибутов персонажа (здоровье, скорость и т.п.) - всё как в команде /attribute
        "minecraft:generic.max_health" to 100f, //к примеру здоровье
    )
    size = 0.6f to 0.8f //размеры хитбокса нпс (в разработке)
    showName = true //показывать ли ник с именем над нпс
    transform = Transform( //Начальные параметры модели: перемещение, поворот и масштаб
        tX=1.5f //сдвинем нашу модель на 1.5 блока по x.
    )
    animations[AnimationType.IDLE] = "<newAnimationName>" // Замена стандартной анимации на свою (по умолчанию движок сам определяет стандартные анимации)
    world = "minecraft:overworld" //измерение, гле спавнить нпс
    pos = pos(x, y, z) //координаты где спавнить нпс
}

Путь к модели указывается, в формате ResourceLocation.

При выполнении данного фрагмента будет создан нпс на указанных координатах, либо взят тот, что уже есть в мире. (в этом случае он не будет перенесён на эти координаты)

Далее используя эту переменную вы можете взаимодействовать с нпс в мире.


Случайный спавн

Заспавнить персонажа рядом с игроком

Если вам нужно, чтобы персонаж заспавнился недалеко от случайного игрока команды, то вы можете воспользоваться этим методом для поиска случайной точки спавна

pos = team.randomPos() //в скобках можно указать радиус, например 25f - для 25 блоков


Аттрибуты

Все существующие аттрибуты, вы можете узнать через команду /attribute <кому>

От вас лишь требуется указать, там где attributes, это:

Attributes("<attributeName>" to <float>)

Обозначения: - attributeName - название аттрибута.
- float - Дробное Число/Цифра, где в конце стоит f, пример: 10f


Удаление персонажа

Для удаления персонажа просто вызовите у него метод despawn().

Шаблон

npc.despawn()