autoupdate

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,479
1,113
Версия MoonLoader
.026-beta
пробовал отсюда https://blast.hk/threads/30483/

Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
-- вот это надо
script_version("1.0")
local color = 0x348cb2
-- это тоже
local dlstatus = require('moonloader').download_status

local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()
  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
    imgui.Begin('Testing update', main_window_state)
    if imgui.Button('UPDATE ME!') then
      printStringNow('Updating!', 1000)
      update()
    end
    imgui.Text("Now version "..thisScript().version)
    imgui.End()
  end
end

function update()
  local fpath = os.getenv('TEMP') .. '\\testoviy_version.json' -- куда будет качаться наш файлик для сравнения версии
  downloadUrlToFile('https://raw.githubusercontent.com/Dmitriy-Makarov/latest/master/upadte?token=AMW4DXFDBDNPIXMAUFWQ54C5PRR3O', fpath, function(id, status, p1, p2) -- ссылку на ваш гитхаб где есть строчки которые я ввёл в теме или любой другой сайт
    if status == dlstatus.STATUS_ENDDOWNLOADDATA then
    local f = io.open(fpath, 'r') -- открывает файл
    if f then
      local info = decodeJson(f:read('*a')) -- читает
      updatelink = info.updateurl
      if info and info.latest then
        version = tonumber(info.latest) -- переводит версию в число
        if version > tonumber(thisScript().version) then -- если версия больше чем версия установленная то...
          lua_thread.create(goupdate) -- апдейт
        else -- если меньше, то
          update = false -- не даём обновиться
          sampAddChatMessage(('[Testing]: У вас и так последняя версия! Обновление отменено'), color)
        end
      end
    end
  end
end)
end
--скачивание актуальной версии
function goupdate()
sampAddChatMessage(('[Testing]: Обнаружено обновление. AutoReload может конфликтовать. Обновляюсь...'), color)
sampAddChatMessage(('[Testing]: Текущая версия: '..thisScript().version..". Новая версия: "..version), color)
wait(300)
downloadUrlToFile(updatelink, thisScript().path, function(id3, status1, p13, p23) -- качает ваш файлик с latest version
  if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
  sampAddChatMessage(('[Testing]: Обновление завершено!'), color)
  thisScript():reload()
end
end)
end

-- ВСЁ!

function main()
  while true do
    wait(0)
    if wasKeyPressed(key.VK_X) then -- активация по нажатию клавиши X
        main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
    end
    imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
  end
end

в чате пишет
39557

но не пишет "Обновление завершено", т.е он зависает на этом месте
в чем может быть проблема?
 
Решение
а там есть разница?
Просмотр и редактирование приватного репозитория доступен только тем людям, которых ты в него пригласил. Ближе к делу: у скрипта НЕ получается скачать по этой ссылке файлы по причине закрытого репозитория.

DolgorukovGTA

Известный
Проверенный
652
344
а там есть разница?
Просмотр и редактирование приватного репозитория доступен только тем людям, которых ты в него пригласил. Ближе к делу: у скрипта НЕ получается скачать по этой ссылке файлы по причине закрытого репозитория.
 

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,479
1,113
Просмотр и редактирование приватного репозитория доступен только тем людям, которых ты в него пригласил. Ближе к делу: у скрипта НЕ получается скачать по этой ссылке файлы по причине закрытого репозитория.
понял, принял