Действия
Возможность управлять вашими НИПами
Скажи им прямо так: "Иди туда - не знаю куда"
Двигаться
- До позиции
- До игрока
- До Другого НИПа
- До сущности
- Бесконечно
HollowEngine: Fixer
на дискорд сервере в канале #scripting-templates
!<npcID> moveTo { pos(x, y, z) }
НИП будет идти до Указанных координат в pos(x, y, z)
.
npc moveTo { pos(13, 65, 235) }
<npcID> moveTo { <player> }
НИП будет идти до Указанного игрока.
val players by server.players
npc moveTo { players.first() }
// ИЛИ //
val me by server.players.filter { it.name.string == "_BENDY659_" }
npc moveTo { me }
<npcID> moveTo <npcID>
НИП будет идти до Указанных НИПа .
val kolya by NPCEntity.creating {...}
npc moveTo kolya
Есть шанс что НИП скорее всего не до конца дойдёт до НИПа, и из-за этого скрипт никуда дальше не пойдёт.
Можно избежать этого, если передвижение НИПа сделать через:
val kolya by NPCEntity.creating {...}
npc moveTo { kolya().position() }
<npcID> moveTo <Entity>
// или
<npcID> moveTo { <Entity> }
НИП может идти до конкретной сущности.
Есть за место moveTo
написать moveAlwaysTo
, то НИП будет двигаться до указанного - Бесконечно.
Для того чтобы остановить выполнение, нужно прописать:
<npdID>.stopMoveAlways()
npc moveAlwaysTo { player().first() }
npc.stopMoveAlways()
НИП так же может бегать. Бег меняет скорость передвижения.
<npcID>.isRunning = true // Вкл. режим бега
<npcID>.isRunning = false // Выкл. режим бега. По умолчанию
Смотреть
- На позицию
- На игрока
- На Другого НИПа
- На сущность
- Бесконечно
<npcID> lookAt { pos(x, y, z) }
НИП будет смотреть на Указанные координаты в pos(x, y, z)
.
npc lookAt { pos(-361, 83, 23) }
<npcID> lookAt { <player> }
НИП будет смотреть на Определённого игрока.
npc lookAt { player().first() }
<npcID> lookAt <npcID>
НИП будет смотреть на Указанного НИПа.
val hollowNpc by NPCEntity.creating {...}
npc lookAt hollowNpc
<npcID>.lookAtEntityType { "<entityID>" }
Здесь вы можете указать уже именно ID
сущности.
Тогда НИП будет смотреть на ту, которая к нему ближе.
npc.lookAtEntityType { "dog" }
<npcID> lookAlwaysAt { <target> }
Есть за место lookAt
написать alwaysLookAt
, то НИП будет смотреть на указанное - Бесконечно.
Для того чтобы остановить выполнение, нужно прописать:
<npcID>.stopLookAlways()
npc lookAlwaysAt { player().first() }
npc.stopLookAlways()
Телепорт
<npcID> tpTo {
pos = pos(x, y, z)
vec = vec(pitch, yaw)
world = "<dimentionID>"
}
Телепортирует НИПа на указанные координаты и в указанный мир (опционально).
pos(x, y, z)
- Координаты, куда нужно телепортировать.vec(pitch, yaw)
- Куда будет смотреть НИП после телепорта.dimentionID
- Мир, в который нужно телепортировать НИПа. Если оно не указано - берётся тот мир, в котором находится НИП в данный момент.
Взаимодействие с миром
Сломать блок
HollowEngine: Fixer
на дискорд сервере в канале #scripting-templates
!<npcID> destroyBlock { pos(x, y, z) }
Сломать блок на указанных координатах.
НИП подойдёт к заданным координатам как можно ближе и после сломает блок.
npc destroyBlock { pos(10, 35, 221) }
Взаимодейтсвие с блоком
<npcID> useBlock { pos(x, y, z) }
Взаимодействовать с блоком на указанных координатах.
НИП подойдёт к заданным координатам как можно ближе и повзаимодействует с блоком.
npc useBlock { pos(19, 73. 94) }
Атаковать
<npcID> setTarget { <target> }
НИП будет атаковать цель до последнего, пока цель не умрёт.
Целью может быть:
- Игрок - Нужно за место
<target>
указать- Другой НИП - Нужно за место
<target>
указатьnpcID
другого НИПа в виде лямбы.npcId setTarget { otheNpcId() }
- Сущность - Нужно за место
<target>
указать
LivingEntity
(Для прошаренных).
<npcID>.clearTarget()
val players by server.players
npc setTarget { player()[0] }
npc clearTarget()
Имейте в виду что данный метод не ждёт когда цель - умрёт. Скрипт продолжится дальше. Если вам нужно ждать, то используйте один из триггеров.