[IGS] :SetGetPrice(func)

Здравствуйте, жители форума gm-donate! У меня возник вопрос с функцией :SetGetPrice(func) от этого прекрасного автодоната. Можете привести пример использование сией функции?

Пример использования (я тестил снизу sh_additems.lua файла)

for _,ITEM in pairs( IGS.GetItems() ) do
	ITEM:SetGetPrice(function(pl)
		if pl == player.GetBySteamID("string steamID") then
			ITEM:SetDiscountedFrom(ITEM.price)
			return ITEM.price * 0.1
		end
	end)
end

Код делал скидку 10% на все предметы для одного игрока

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

А можешь скинуть такой код? Если не против конечно

Если я правильно понял, то должно выглядеть примерно вот так

IGS("vip", "vip"):SetULXGroup("vip")
 	:SetPrice(100)
 	:SetTerm(30)
 	:SetCategory("Группы")

 IGS("moderator", "moderator"):SetULXGroup("moderator")
 	:SetPrice(150)
 	:SetGetPrice(function(pl, ITEM)
		if pl:HasPurchase("vip") then -- проверка есть ли у нас привилегия ниже(в моем случае vip)
			ITEM:SetDiscountedFrom(ITEM.price)
			return ITEM.price * 0.5 -- делаем скидку 50%
		end
	end)
 	:SetTerm(30)
 	:SetCategory("Группы")

На первый взгляд, правильно

А можно ли сделать чтобы скидка писалась в донат меню?

Не понял

Чтобы тут скидка показывалась на айтемах

Если в SetGetPrice используется метод pl:HasPurchase(“uid”), то для предмета “uid”, нужно еще сделать :SetNetworked(), чтобы информация о его покупке передавалась на клиент

Просто в данный код вставить :SetNetworked()? или нужно еще что-то добавить не совсем понимаю

local ITEM = IGS("VIP на 1 месяц", "vip_odin_mesac")
	:SetULXGroup("vip")
    :SetPrice(89)
    :SetGetPrice(function(pl, ITEM)
        if pl:HasPurchase("vip_na_semday") then
            ITEM:SetDiscountedFrom(ITEM.price)
            return ITEM.price * 0.8
        end
    end)
    :SetTerm(30)
    :SetIcon("https://i.imgur.com/pb39VTk.png")
    :SetCategory("Донат привилегии")
    :SetDescription(viptext) 
    :SetCanActivate(function(ply)
        if ply:GetUserGroup() == "superadmin" or ply:GetUserGroup() == "helper" or ply:GetUserGroup() == "moder" or ply:GetUserGroup() == "admin"  or ply:GetUserGroup() == "curator" then
            return "Вы находитесь в команде проекта и не можете использовать эту услугу!"
        end
    end)
VIPS:AddItem(ITEM)
1 лайк

Для итема vip_na_semday нужно прописать SetNetworked()