Как сделать команду “/dengi”, которая будет выдавать донат валюту за наигранное время 1 раз?
т.е, если игрок прописывает /dengi, но он не наиграл условных 10 часов на сервере, то донат валюту не получит. Как промокод, только команда с проверкой кол-ва наигранного времени.
if not sql.TableExists('igs.freemoney') then
sql.Query('CREATE TABLE igs.freemoney (steamid VARCHAR(40), date INTEGER)')
end
hook.Add('PlayerSay', 'babosiki', function(ply, text)
if text ~= '/dengi' then return end
if ply:GetUTimeTotalTime() < 10*60*60 then
DarkRP.notify(ply, 1, 5, 'Для получения подарка нужно наиграть 10 часов')
return ''
end
if ply.claimedfreemoney then
DarkRP.notify(ply, 1, 5, 'Ты уже забрал подарок')
return ''
else
local d = sql.Query('SELECT * FROM igs.freemoney WHERE steamid = "'..ply:SteamID()..'"')
if d and d[1] then
ply.claimedfreemoney = true
DarkRP.notify(ply, 1, 5, 'Ты уже забрал подарок')
return ''
end
sql.Query('INSERT INTO igs.freemoney (steamid, date) VALUES("'..ply:SteamID()..'", '..os.time()..')')
ply.claimedfreemoney = true
ply:AddIGSFunds(10)
DarkRP.notify(ply, 0, 10, 'Ты получил 10р в подарок за игру на сервере!')
return ''
end
end)
Выдаёт ошибку при попытке вызвать метод GetUTimeTotalTime()
пасиба
Как сделать тоже самое, только для сап сборки, без использования UTime?
Я не знаю, как на твоей “сап сборке” идет учет наигранного у игроков времени. Замени функцию из ютайма на аналогичную с сапа и проверь на наличие десяти наигранных часов
У меня очень хороший вопрос куда вставлять этот код?
В любой серверный скрипт garrysmod/addons/ТВОЙ_АДДОН/lua/autorun/server/sv_ИМЯ.lua
Свой аддон сделать?
Лично я сунул по пути “/garrysmod/addons/donate/lua/autorun/server/promo.lua”
В любой файл который выполняется на СЕРВЕРНОЙ стороне.
Не знаешь какая луа серверная?
В аддонах, режимах они могут помечатся sv_*.lua ; *_sv.lua .
Нет таких файлов? не проблема.
Сервер\garrysmod\lua\autorun\server\Файл.lua
в данной папке любой lua файл будет запущен только на СЕРВЕРНОЙ стороне.