Configuration
Конфигурация
Все настраивается в файле config.lua. Эта страница подробно описывает каждый параметр.
Основное
Config.Framework = 'qbox' -- qbox / qbcore / esx / standalone
Config.Command = 'animpos' -- название команды в чате
Config.Cooldown = 15 -- задержка между использованиями (в секундах)- Framework — выбор основного ресурса и применяемых ограничений метаданных.
- Command — команда чата для открытия инструмента (также используется как название привязки клавиши).
- Cooldown — минимальное количество секунд между использованиями.
Горячая клавиша
Позволяет игрокам открывать инструмент с помощью клавиши, которую можно переназначить в настройках GTA V.
Config.Keybind = {
Enabled = true,
Default = 'F6', -- клавиша по умолчанию (пусто для отсутствия; игрок может переназначить)
}Привязка клавиши регистрируется только тогда, когда Enabled = true и Default не пустое. Игроки всегда могут переназначить ее в разделе Настройки → Назначение клавиш → FiveM.
Права доступа (необязательно)
Ограничение круга лиц, имеющих доступ к инструменту. По умолчанию отключено.
Config.Permission = {
Enabled = false,
Type = 'ace', -- 'ace' / 'job'
Ace = 'animpos.use', -- используется, если Type == 'ace'
Jobs = { 'police', 'ambulance' }, -- используется, если Type == 'job'
}ace— проверяется на стороне сервера черезIsPlayerAceAllowedс использованием колбэка ox_lib (самый безопасный способ). Выдайте право с помощьюadd_ace ... animpos.use allow.job— профессия игрока в фреймворке должна находиться в спискеJobs(QBox / QB-Core / ESX).
Ограничения
Блокировка использования, пока игрок находится в определенных состояниях. Нативные проверки работают на любом фреймворке; проверки метаданных применяются только для QBox и QB-Core.
Config.Restrictions = {
-- На основе фреймворка (только qbox / qbcore)
CheckDead = true, -- блокировать в мертвом состоянии
CheckLastStand = true, -- блокировать в предсмертном состоянии
CheckHandcuffed = true, -- блокировать в наручниках
-- На основе нативных функций (работает на ВСЕХ фреймворках, включая standalone)
CheckInVehicle = true, -- блокировать внутри транспорта
CheckFalling = true, -- блокировать во время падения / с парашютом
CheckSwimming = false, -- блокировать во время плавания
-- Имена полей метаданных, считываемые из данных игрока
MetaKeys = {
Dead = 'isdead',
LastStand = 'inlaststand',
Handcuffed = 'ishandcuffed',
},
}MetaKeys сопоставляются с именами полей метаданных в данных игрока вашего фреймворка. Если ваше ядро (или кастомный пакет) хранит их под другими ключами, измените их здесь, чтобы проверки на смерть / предсмертное состояние / наручники считывали правильные значения.
Уведомления
Выберите бэкенд, используемый для каждого сообщения.
Config.Notify = 'ox_lib' -- 'ox_lib' / 'qbcore' / 'esx' / 'custom'
-- Используется только если Config.Notify == 'custom'.
-- ntype может принимать значения: 'success' / 'error' / 'primary' / 'inform'
Config.CustomNotify = function(message, ntype)
-- exports['my-notify']:SendAlert(message, ntype)
endox_lib—lib.notify(по умолчанию).qbcore— событиеQBCore:Notify.esx— событиеesx:showNotification.custom— ваш собственный обработчик вConfig.CustomNotify.
Недействительное значение Config.Notify запишет предупреждение в консоль сервера и безопасно переключится на ox_lib.
Интерфейс (UI)
Config.UI = {
Position = 'right', -- left / right / center
OffsetX = 30, -- расстояние от края (px)
OffsetY = 0, -- вертикальное смещение (px)
AccentColor = '#f4cb98', -- акцентный цвет для подсветки клавиш / свечения
ShowHeader = true, -- показывать заголовок / подзаголовок
ShowTip = true, -- показывать нижнюю строку с подсказкой
ShowAnimations = true, -- анимации нажатия клавиш
AnimationType = {
Movement = 'pulse', -- pulse / glow
Action = 'glow', -- pulse / glow
}
}Перемещение
Config.Movement = {
Speed = 0.01, -- скорость перемещения
RotationSpeed = 0.5, -- скорость вращения
MaxDistance = 5.0, -- максимальное расстояние от начальной точки (м)
MaxHeight = 3.5, -- максимальная высота над начальной точкой (м)
MinHeight = -3.5, -- минимальная высота под начальной точкой (м)
PrecisionMultiplier = 0.25, -- множитель скорости при удержании точного режима
}Производительность
Config.Performance = {
NetworkUpdateDelay = 50, -- задержка сетевой синхронизации (мс)
LoopWait = 0, -- ожидание главного цикла (мс)
AnimationDuration = 300, -- длительность анимации UI (мс)
SyncCooldown = 50, -- антиспам-кулдаун синхронизации на стороне сервера (мс)
}Параметр AnimationDuration передается в интерфейс в качестве длительности перехода для панели. Значения, связанные с синхронизацией, регулируют частоту отправки и приема обновлений позиции.
Звуки
Необязательные стандартные звуки GTA V для открытия / подтверждения / отмены / сброса.
Config.Sounds = {
Enabled = true,
Open = { name = 'SELECT', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
Confirm = { name = 'SELECT', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
Cancel = { name = 'CANCEL', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
Reset = { name = 'RESET_PROMPTS', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' },
}Установите Enabled = false, чтобы отключить все звуки.
Хук CanUse
Пользовательская проверка, которая выполняется каждый раз, когда игрок пытается открыть инструмент. Верните true для разрешения или false (опционально с текстом сообщения) для блокировки.
Config.CanUse = function()
-- Пример: блокировать при получении урона
-- local ped = PlayerPedId()
-- if HasEntityBeenDamagedByAnyPed(ped) then
-- -- возвращаем false и текст ошибки
-- return false, 'Вы не можете сделать это во время получения урона!'
-- end
return true
endУправление
Сканкоды клавиш управления также полностью