Создание и спавн нпс
Создание персонажа
Для создания нпс есть следующий шаблон:
Шаблон
//Здесь мы создаём переменную-делегат, через которую будем обращаться к нашему персонажу. Сам нпс будет заспавлен сразу же как будет вызван этот участок кода.
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()