Skip to content

Экспорты

Экспорты

BUPA AnimPos предоставляет три клиентских экспорта, позволяющих другим ресурсам управлять инструментом программно. Все они выполняются под именем ресурса bupa-animpos.

Open

Открывает инструмент. Запускает полную цепочку проверок — нахождение в использовании, кулдаун, права, ограничения состояний и хук Config.CanUse — точно так же, как если бы игрок использовал команду или бинд клавиши. Возвращает true, если инструмент действительно открылся, и false в противном случае.

client
local opened = exports['bupa-animpos']:Open()
if opened then
    print('Positioning mode started')
end

Close

Запрашивает закрытие инструмента, если он в данный момент активен. Это работает так же, как нажатие отмены — персонаж возвращается в исходную позицию и направление (heading).

client
exports['bupa-animpos']:Close()

IsActive

Возвращает булево значение, указывающее, открыт ли в данный момент режим позиционирования для локального игрока.

client
if exports['bupa-animpos']:IsActive() then
    -- e.g. block another interaction while the tool is open
end

Пример — совмещение с меню эмоций

client
-- After playing an emote, let the player nudge it into place
RegisterCommand('fixpos', function()
    if not exports['bupa-animpos']:IsActive() then
        exports['bupa-animpos']:Open()
    end
end)

Связанное — конфиг-хук CanUse

Помимо экспортов, Config.CanUse — это клиентский хук, который срабатывает при каждой попытке открытия (включая вызов через Open()). Верните false, чтобы заблокировать действие, и опционально строковое сообщение для показа игроку. Это идеальное место для серверной логики ограничений (бой, урон, кастомные состояния).

config.lua
Config.CanUse = function()
    -- return false, 'You cannot do this right now!'
    return true
end