Здравствуйте, как можно сделать двойной донат в любое время и любое количество раз?
Есть такой скрипт:
Для постоянного удвоения используй этот код:
hook.Add("IGS.PlayerDonate", "double_donation", function(pl, sum)
pl:AddIGSFunds(sum, "Удвоение доната")
IGS.Notify(pl, "Вы пополнили счет на " .. PL_MONEY(sum) .. " и получили столько же сверху")
end)
Сообщи, сработает ли
Igs-modules это любая папка? Или где ее взять?
Просто закинь файл по пути addons/igs-modification/lua/autorun/server/doubledon.lua
Спасибо, все работает)
Спасибо, работает, но разве эту тему уже не выставляли?
Куда выставляли?
P.S. Твоя ссылка ведет на эту тему
Раньше была такая тема уже на каком-то ноу нейм форуме, возможно этого форму уже нет
Как реализовать X3 донат?
Думаю что нужно сделать, sum * 2
Как х2, но х3
Кст это будет работать только если игрок на сервере)
Некоторые игроки оплачивают с сайта (или могут выйти с сервера)
Можно использовать хук IGS.IncomingMessage
local note = "x2 к пополнению"
hook.Add( "IGS.IncomingMessage", "IGS x2", function( d, method )
if method ~= "payment.UpdateStatus" or d.method ~= "pay" then return end
local targ = player.GetBySteamID64( d.SteamID64 )
local amount = IGS.RealPrice( d.orderSum )
if targ then
targ:AddIGSFunds( amount, note, function( )
if !IsValid( targ ) then return end
IGS.Notify( targ, "Задействован бонус '" .. note .. "'!" )
end )
else
IGS.Transaction( d.SteamID64, amount, note )
end
end )
FYI
Так и есть, ты внимательный. Молодец
Я кстати вспомнил зачем была проверка на игрока. Если у проекта несколько серверов, то оно удвоит столько раз, сколько серверов будет запущено в момент удвоения доната
Удвоение доната 1 раз в сутки
local HOUR = 60 * 60
hook.Add("IGS.PlayerDonate", "double_donation", function(pl, sum)
local cookie_uid = "igs:x2received:" .. pl:SteamID64()
if os.time() - (cookie.GetNumber(cookie_uid_today) or 0) <= (HOUR * 20) then
IGS.Notify(pl, "Сегодня вы уже получали x2 за донат")
return
end
cookie.Set(cookie_uid, os.time())
pl:AddIGSFunds(sum, "Удвоение доната")
IGS.Notify(pl, "Вы пополнили счет на " .. PL_MONEY(sum) .. " и получили столько же сверху")
end)
Хм, да, ты прав. Тогда я не вижу решения этой проблемы) Придется игрокам быть в онлайне