Skip to content

Аниматроники

Краткий справочник по работе с аниматрониками в Fazbear's Hunt.

Как устроены аниматроники

Все аниматроники в FH регистрируются таким же методом, как это делается в Parakeets Pill Pack, но с небольшими поправками и новвоведениями для Пиллов, которые дают разработчикам больше возможностей.

Режим определяет:

  • Играбельные — могут появиться в выборке в начале обычного раунда
  • Вторичные — могут появиться в выборке только если аниматроников больше двух

Базовые операции

Добавить аниматроника в выборку

lua
pill_makePreferable("pill_springtrap", true)

Избегайте

Избегайте динамического изменения играбельности аниматроника, так как играбельность можно в любой момент изменить в Админ-Панели.

Сделать вторичным

lua
-- Шедоу Фредди теперь появляется в выборке даже если недостаточно аниматроников
pill_makeSecondary("pill_sfreddy2", false)

Получить модель аниматроника игрока

lua
local ent = pills.getMappedEnt(ply)
if IsValid(ent) then
    print("Модель:", ent:GetModel())
end

Также можно получить структуру Пилла

lua
local ent = pills.getMappedEnt(ply)
if IsValid(ent) then
    if ent.formTable.reload then
		print("Пилл имеет способность на бинд +reload!")
	else
		print("Пилл не имеет способности на +reload")
	end
end

Разница

Режим добавляет в PlayerMeta функцию ply:GetPill(), но она напрямую вызывает pills.getMappedEnt(ply), поэтому рекомендуется использовать именно второй вариант, для оптимизации.

Реакция на способности

Используйте хуки для реакции на действия аниматроников:

АниматроникХукОписание
ФреддиFH_BlindRageStartСлепая Ярость началась
БонниFH_YoursMineStartЧужим Разумом начался
ЧикаFH_MinePlantedКекс установлен
Шедоу ФреддиFH_SFreddySubmergeInУход в невидимость
Золотой ФреддиFH_OutworldStartЗагранное Измерение

См. полный список: Способности аниматроников →

Скримеры

Скример — кульминационное действие аниматроника. Перехват скримеров идёт через:

Создание собственного скримера

lua
function simpleJumpscare(ply, ent)
	local target = FindNearestPlayer(ply:EyePos(), 120, ply, 36)
				
	local success = performJumpscare(ply, ent, target, 1.6)

	if success then
		print( "[TEST] Animatronic " .. ply:Nick() .. " jumpscared " .. target:Nick() )
	end
end