Доброго времени суток, уважаемые жители форума, задаюсь вопросом, возможно ли сделать так, чтобы игрокам, которые играли уже продолжительное количество времени, например, 30 часов, то им дается скидка в 15% на услуги?
если через utime то в теории так:
hook.Add("PlayerInitialSpawn", "SaleForOlds", function(ply)
local stariktime = ply:GetUTimeTotalTime()
if stariktime >= 108000 then
-- Применяем скидку ко всем предметам
for _, ITEM in pairs(IGS.GetItems()) do
ITEM:SetDiscountedFrom(ITEM.price) -- бирочка о скидке
ITEM:SetPrice(ITEM.price * 0.6) -- скидка 40%
end
end
end)
но код не проверял, потестишь
1 лайк
Благодарю Вас. И вправду работает, чёт я протупил чутка
Не знаю, правильный ли это хук, поправь, если я ошибаюсь. @GMD
local REQUIRED_TIME = (60 * 60) * 30
hook.Add("IGS.Loaded", "SaleForOlds", function()
for _, ITEM in pairs(IGS.GetItems()) do
ITEM:SetGetPrice(function(pl)
local totalPlayedTime = pl:GetUTimeTotalTime()
if totalPlayedTime > REQUIRED_TIME then
local price = ITEM:Price()
ITEM:SetDiscountedFrom(price)
return math.Round(price * 0.6)
end
end)
end
end)
1 лайк
По идее все правильно, но у челика снизу дичь происходит. Можешь проверить свой код?
Если будет рабочим, то добавь метку “связано с гмд”, “рекомендуем”, а еще сошлись с документации с метода SetGetPrice на эту тему.
П.С. Тему переименовал
П.П.С. Есть предположение, что оно там хочет math.Round у него
1 лайк
Исправил, можешь проверить
1 лайк
Всё работает теперь отлично, спасиб)
2 лайка