requests = require('requests')
function getserial()
local ffi = require("ffi")
ffi.cdef[[
int __stdcall GetVolumeInformationA(
const char* lpRootPathName,
char* lpVolumeNameBuffer,
uint32_t nVolumeNameSize,
uint32_t* lpVolumeSerialNumber,
uint32_t* lpMaximumComponentLength,
uint32_t* lpFileSystemFlags,
char* lpFileSystemNameBuffer,
uint32_t nFileSystemNameSize
);
]]
local serial = ffi.new("unsigned long[1]", 0)
ffi.C.GetVolumeInformationA(nil, nil, 0, serial, nil, nil, nil, 0)
return serial[0]
end
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
checkKey()
addkeytochat()
wait(-1)
end
function checkKey()
response = requests.get('https://site.ru/check.php?code='..getserial())
if not response.text:match("<body>(.*)</body>"):find("-1") then -- Если ключ есть в бд
if not response.text:match("<body>(.*)</body>"):find("The duration of the key has expired.") then -- Если сервер не ответил что ключ истек.
sampAddChatMessage("До окончания лицензии осталось:"..response.text:match("<body>(.*)</body>"), -1) -- Выводим кол-во дней до конца лицензии
else
sampAddChatMessage("The duration of the key has expired.", -1)
end
else
sampAddChatMessage("Ключ не активирован.", -1)
end
end
function addkeytochat()
sampAddChatMessage("Ключ: "..getserial(), -1)
end