Как сделать в Onyx Store покупку доната на время?

я подключил igs к оникс сторе, пополнение через igs и воникс сторе поинты появляються. Сталкнулся с такой проблемой что там нельзя на время выдать привелегию.

там есть функция консольная команда, но как сделать команду чтобы она выдавала vip тому куто купил, тоесть я сделал

она покупаетсья и используеться но вип не даетсья и в консоле пишет

Ну, у тебя ведь команда прописана без аргументов, кому оно должно выдать?

Так если я аргумент напишу то будет выдавать только тому кого я впишу тоесть впишу человека А, например человек Б и С купят и донат придет человеку А. Мне нужна команда чтобы тому кто купил выдалась привелегия.

так бля, под аргумент впиши “ply:SteamID()”

1 лайк

Скорее всего, там нужно код дописывать. Там ведь не функция, а просто команда. Хз какие там методы - не видел

local setRank
if (SERVER) then
    function setRank(ply, group)
        assert(IsEntity(ply), Format('bad argument #1 to `setRank` (expected player, got %s)', type(ply)))
        assert(isstring(group), Format('bad argument #2 to `setRank` (expected string, got %s)', type(group)))

        local oldGroup = ply:GetUserGroup()

        onyx.creditstore:PrintDebug('Attempting to set a new group # to # (old: #)', group, ply, oldGroup)
    
        if (sam) then
            ply:SetUserGroup(group)
            ply:sam_setrank(group)
            return true
        elseif (ulx) then
            ply:SetUserGroup(group)
            return true
        elseif (sAdmin) then
            sAdmin.setRank(ply, group)
            return true
        end
    end

    local function applyStoreRank(ply)
        local inventory = onyx.creditstore:GetPlayerInventory(ply)
        for _, it in ipairs(inventory) do
            local item = onyx.creditstore.items[it.id]
            if (item and item.type == 'permrank' and it.data and it.data.equipped) then
                setRank(ply, item.data.rank)
                break
            end
        end
    end

    hook.Add('onyx.creditstore.PlayerLoaded', 'onyx.creditstore.rank', function(ply)
        timer.Simple(10, function() -- timer to evade override from admin mode
            if (IsValid(ply)) then
                ply.onyx_InitRank = ply:GetUserGroup()
                applyStoreRank(ply)
            end
        end)
    end)

    hook.Add('CAMI.PlayerUsergroupChanged', 'onyx.creditstore.rank', function(ply, old, new)
        ply.onyx_InitRank = new
        applyStoreRank(ply)
    end)
end

do
    local ITEMTYPE = {}
    ITEMTYPE.name = 'Permanent Rank'
    ITEMTYPE.color = Color(0, 102, 255)
    ITEMTYPE.noDuplicates = true

    ITEMTYPE.equip = true
    ITEMTYPE.uniqueEquip = true
    ITEMTYPE.onEquip = function(ply, itemTableData)
        setRank(ply, itemTableData.rank)
    end
    ITEMTYPE.onUnequip = function(ply, itemTableData)
        if (ply.onyx_InitRank) then
            setRank(ply, ply.onyx_InitRank)
        end
        -- ply.onyx_OldRank = nil
    end

    ITEMTYPE.settings = {
        {
            key = 'rank',
            name = 'RANK',
            desc = 'The rank identifier.',
            icon = 'https://i.imgur.com/zgt3zea.png',
            type = 'string',
            validateOption = function(value)
                if (value == '') then
                    return false, 'You must enter the rank id!'
                end
        
                return true
            end
        }
    }

    onyx.creditstore:RegisterType('permrank', ITEMTYPE)
end

Вот код, не могу понять где тут время


В функции “setrank”:
в sam_setrank также добавь время (length), т.е
sam_setrank(group, length)
также в функцию впихни “length” – function setRank(ply, group, length)

в функции applyStoreRank у тебя эта функция тоже прописывается, тебе нужно дописать третий аргумент

Если чет хуйню написал - эдитните пж

2 сообщения были перенесены в новую тему: [SAM] Как настроить выдачу доната через Onyx Store?

чел ты внатуре гений!!! Емае так просто было ахахах спасибо тебе !!! ты мужык мужыцкий с огромными яйцами

1 лайк