Skip to content

Exports

Exports

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
    -- наприклад, заблокувати іншу взаємодію, поки інструмент відкритий
end

Example — pair with an emote menu

client
-- Після відтворення анімації дозвольте гравцеві підлаштувати її
RegisterCommand('fixpos', function()
    if not exports['bupa-animpos']:IsActive() then
        exports['bupa-animpos']:Open()
    end
end)

Окрім експортів, Config.CanUse — це клієнтський хук, який виконується при кожній спробі відкриття (зокрема й через Open()). Поверніть false для блокування та, за бажанням, рядок повідомлення для показу гравцеві. Це ідеальне місце для серверної логіки обмежень (бій, пошкодження, кастомні стани).

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