Аниматроники
Краткий справочник по работе с аниматрониками в Fazbear's Hunt.
Как устроены аниматроники
Все аниматроники в FH регистрируются таким же методом, как это делается в Parakeets Pill Pack, но с небольшими поправками и новвоведениями для Пиллов, которые дают разработчикам больше возможностей.
Режим определяет:
- Играбельные — могут появиться в выборке в начале обычного раунда
- Вторичные — могут появиться в выборке только если аниматроников больше двух
Базовые операции
Добавить аниматроника в выборку
pill_makePreferable("pill_springtrap", true)Избегайте
Избегайте динамического изменения играбельности аниматроника, так как играбельность можно в любой момент изменить в Админ-Панели.
Сделать вторичным
-- Шедоу Фредди теперь появляется в выборке даже если недостаточно аниматроников
pill_makeSecondary("pill_sfreddy2", false)Получить модель аниматроника игрока
local ent = pills.getMappedEnt(ply)
if IsValid(ent) then
print("Модель:", ent:GetModel())
endТакже можно получить структуру Пилла
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 | Загранное Измерение |
См. полный список: Способности аниматроников →
Скримеры
Скример — кульминационное действие аниматроника. Перехват скримеров идёт через:
FH_PlayerShouldJumpscare— можно отменитьFH_AnimatronicJumpscare— после успешного скримераFH_JumpscareEvent— перед заморозкой жертвы
Создание собственного скримера
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