Исходник Гайд Lua || Как сделать автообновление вашего скрипта?

atizoff

приобретаю кашель за деньги
Автор темы
Проверенный
1,296
1,179
Салам всем форумчаненам, решил показать с примера qrlk, как сделать автообнову.
Тутор только для хомяков и только, приступим.

Заходим на сайт https://jsonbin.io и там создаём вот такое чудо

Код:
{
  "latest": "Тут вашу версию, версия должна быть больше тут, а в скрипте меньше",
  "updateurl": "ссылку на скачку самой новой версии"
}

Так, всё сделали, теперь код, полностью расписанный.

Lua:
local dlstatus = require('moonloader').download_status

function update()
  local fpath = os.getenv('TEMP') .. '\\testing_version.json' -- куда будет качаться наш файлик для сравнения версии
  downloadUrlToFile('https://gist.githubusercontent.com/atiZZZ/7507f7d4a51dc036bd275b96cc7bed38/raw/a78a8ef401c553c4309efd6a80075f56567c6c93/atiz', 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

-- ВСЁ!

Снизу пример автообновы с имжуй, можете посмотреть
 

Вложения

  • test.lua
    2.7 KB · Просмотры: 400

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хттп запросы для лохов?
 

Nagenbl4

Новичок
107
2
Help. Такая тема. В общем, проблема с кодировкой. Скрипт работает нормально, кодировка стоит при первой версии норм. После обновления слетает кодировка файла и пишет кракозябры. Условно новая версия отличается от старой лишь тем, что изменены названия ввода команды и всё. Как фиксануть?
 

trefa

3d print
Всефорумный модератор
2,107
1,264
Help. Такая тема. В общем, проблема с кодировкой. Скрипт работает нормально, кодировка стоит при первой версии норм. После обновления слетает кодировка файла и пишет кракозябры. Условно новая версия отличается от старой лишь тем, что изменены названия ввода команды и всё. Как фиксануть?
если с гитхаба, то меняй на другое хранилище
 
  • Нравится
Реакции: moriarty.