как сделать ОПОВЕЩЕНИЕ об обновлении?

cheremuxa

Известный
Автор темы
430
200
Версия MoonLoader
.026-beta
как сделать ОПОВЕЩЕНИЕ об обновлении, а не загрузка его, т.е как-то прочитать .json или .txt с сайта
пример или наводку, в гугле только про ЗАГРУЗКУ, попытался убрать загрузку, но выбивает неисправимую ошибку
 
Решение
Lua:
function autoupdate(json_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
              update = false...

wojciech?

Известный
204
115
Lua:
function autoupdate(json_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
              update = false
              sampAddChatMessage('Обнаружено обновление с версии ' .. thisScript().version .. ' на ' .. updateversion), -1)
            else
              update = false
              print('v'..thisScript().version..': Обновление не требуется.')
            end
          end
        else
          print('v'..thisScript().version..': Не могу проверить обновление.')
          update = false
        end
      end
    end
  )
  while update ~= false do wait(100) end
end
 
Последнее редактирование:

cheremuxa

Известный
Автор темы
430
200
Lua:
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
              update = false
              sampAddChatMessage('Обнаружено обновление с версии ' .. thisScript().version .. ' на ' .. updateversion), -1)
            else
              update = false
              print('v'..thisScript().version..': Обновление не требуется.')
            end
          end
        else
          print('v'..thisScript().version..': Не могу проверить обновление. Смиритесь или проверьте самостоятельно на '..url)
          update = false
        end
      end
    end
  )
  while update ~= false do wait(100) end
end
и как, работает?
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
и как, работает?
Если там не поймешь, попробуй как тут сделать
У меня так получилось
 

wojciech?

Известный
204
115
а собсна, куда мне свою ссылку вставить, и как записывать НЕСКОЛЬКО версий в .json?
json_url - ссылка на сайт с версией.

как вариант, просто запиши на сайте несколько версий
Код:
{
  "latest1": "01.01.2019",
  "latest2": "05.05.2020",
  "latest3": "03.03.2021"
}
и делай с ними, что хочешь, собственно
Lua:
function autoupdate(json_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'))
            updateversion1 = info.latest1
            updateversion2 = info.latest2
            updateversion3 = info.latest3
            f:close()
            os.remove(json)
            if updateversion ~= thisScript().version then
              update = false
              sampAddChatMessage('Обнаружено обновление с версии ' .. thisScript().version .. ' на ' .. updateversion1), -1)
              sampAddChatMessage('Так же ещё обнаружены некоторые версии: ' .. updateversion2 .. ', ' .. updateversion3), -1)
            else
              update = false
              print('v'..thisScript().version..': Обновление не требуется.')
            end
          end
        else
          print('v'..thisScript().version..': Не могу проверить обновление.')
          update = false
        end
      end
    end
  )
  while update ~= false do wait(100) end
end
 

cheremuxa

Известный
Автор темы
430
200
Lua:
function autoupdate(json_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
              update = false
              sampAddChatMessage('Обнаружено обновление с версии ' .. thisScript().version .. ' на ' .. updateversion), -1)
            else
              update = false
              print('v'..thisScript().version..': Обновление не требуется.')
            end
          end
        else
          print('v'..thisScript().version..': Не могу проверить обновление.')
          update = false
        end
      end
    end
  )
  while update ~= false do wait(100) end
end
т.е после того как код втавил писать
autoupdate('ссылка на мой json') ?