function autoupdate(json_url, prefix, url)
local dlstatus = require('moonloader').download_status
local json = getWorkingDirectory() .. '\\'..thisScript().name..'-version.json'
if doesFileExist(json) then os.remove(json) end
downloadUrlToFile(json_url, json,
function(id, status, p1, p2)
if status == dlstatus.STATUSEX_ENDDOWNLOAD then
if doesFileExist(json) then
local f = io.open(json, 'r')
if f then
local info = decodeJson(f:read('*a'))
updatelink = info.updateurl
updateversion = info.latest
f:close()
os.remove(json)
if updateversion ~= thisScript().version then
lua_thread.create(function(prefix)
local dlstatus = require('moonloader').download_status
local color = -1
sampAddChatMessage(('[Ghelper]{FFFFFF} Доступно новое обновление! Пытаюсь обновиться c '..thisScript().version..' на '..updateversion), 0x046D63)
wait(1000)
downloadUrlToFile(updatelink, thisScript().path,
function(id3, status1, p13, p23)
if status1 == dlstatus.STATUS_DOWNLOADINGDATA then
elseif status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
sampAddChatMessage(('[Ghelper]{FFFFFF} Скрипт успешно обновлён.'), 0x046D63)
sampAddChatMessage(('[Ghelper]{FFFFFF} Ознакомиться со всеми обновлениями вы сможете по команде /upds.'), 0x046D63)
goupdatestatus = true
lua_thread.create(function() wait(1000) thisScript():reload() end)
end
if status1 == dlstatus.STATUSEX_ENDDOWNLOAD then
if goupdatestatus == nil then
sampAddChatMessage(('[Ghelper]{FFFFFF} Не удалось обновить скрипт! Информацию можете узнать у ГС 01.'), 0x046D63)
update = false
end
end
end
)
end, prefix
)
else
update = false
end
end
else
update = false
end
end
end
)
while update ~= false do wait(3000) end
end