Skip to content

Configuration

Конфигурация

Все настраивается в файле config.lua. Эта страница подробно описывает каждый параметр.

Основное

config.lua
Config.Framework = 'qbox'    -- qbox / qbcore / esx / standalone
Config.Command   = 'animpos' -- название команды в чате
Config.Cooldown  = 15        -- задержка между использованиями (в секундах)
  • Framework — выбор основного ресурса и применяемых ограничений метаданных.
  • Command — команда чата для открытия инструмента (также используется как название привязки клавиши).
  • Cooldown — минимальное количество секунд между использованиями.

Горячая клавиша

Позволяет игрокам открывать инструмент с помощью клавиши, которую можно переназначить в настройках GTA V.

config.lua
Config.Keybind = {
    Enabled = true,
    Default = 'F6',  -- клавиша по умолчанию (пусто для отсутствия; игрок может переназначить)
}

Привязка клавиши регистрируется только тогда, когда Enabled = true и Default не пустое. Игроки всегда могут переназначить ее в разделе Настройки → Назначение клавиш → FiveM.

Права доступа (необязательно)

Ограничение круга лиц, имеющих доступ к инструменту. По умолчанию отключено.

config.lua
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.lua
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.lua
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)
end
  • ox_liblib.notify (по умолчанию).
  • qbcore — событие QBCore:Notify.
  • esx — событие esx:showNotification.
  • custom — ваш собственный обработчик в Config.CustomNotify.

Недействительное значение Config.Notify запишет предупреждение в консоль сервера и безопасно переключится на ox_lib.

Интерфейс (UI)

config.lua
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.lua
Config.Movement = {
    Speed         = 0.01,  -- скорость перемещения
    RotationSpeed = 0.5,   -- скорость вращения
    MaxDistance   = 5.0,   -- максимальное расстояние от начальной точки (м)
    MaxHeight     = 3.5,   -- максимальная высота над начальной точкой (м)
    MinHeight     = -3.5,  -- минимальная высота под начальной точкой (м)
    PrecisionMultiplier = 0.25, -- множитель скорости при удержании точного режима
}

Производительность

config.lua
Config.Performance = {
    NetworkUpdateDelay = 50,   -- задержка сетевой синхронизации (мс)
    LoopWait           = 0,    -- ожидание главного цикла (мс)
    AnimationDuration  = 300,  -- длительность анимации UI (мс)
    SyncCooldown       = 50,   -- антиспам-кулдаун синхронизации на стороне сервера (мс)
}

Параметр AnimationDuration передается в интерфейс в качестве длительности перехода для панели. Значения, связанные с синхронизацией, регулируют частоту отправки и приема обновлений позиции.

Звуки

Необязательные стандартные звуки GTA V для открытия / подтверждения / отмены / сброса.

config.lua
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.lua
Config.CanUse = function()
    -- Пример: блокировать при получении урона
    -- local ped = PlayerPedId()
    -- if HasEntityBeenDamagedByAnyPed(ped) then
    --     -- возвращаем false и текст ошибки
    --     return false, 'Вы не можете сделать это во время получения урона!'
    -- end
    return true
end

Управление

Сканкоды клавиш управления также полностью