Не работает авто обновление для lua

UBP

Известный
Автор темы
368
242
Не работает авто обнова. Пишу /checkupdates пишет пишет и скрипт превращается в какую то ересь. Обновления не происходит.
Приложил лог и код. Буду благодарен за любую информацию.

в начале скрипта:
Lua:
local dlstatus = require('moonloader').download_status

local version = '2.0'




Код авто обновы:
Lua:
function CheckUpdate()
    downloadUrlToFile("https://drive.google.com/uc?export=download&confirm=no_antivirus&id=1sBI1BHBSo5FyH3AWYajLB0C4xpGoIC93", os.getenv('TEMP') .. '\\version.txt',  function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(os.getenv('TEMP') .. '\\version.txt')
            if f then
                local newversion = f:read():match('version %= (.*)')
                if version ~= tostring(newversion) then
                    sampAddChatMessage('• {FFC800}[Подсказка] {FFFFFF}Обнаружена новая версия. Установка началась.', -1)
                    lua_thread.create(downloadNew)
                end
            end
        end
    end)
end

function downloadNew()
    wait(1200)
    downloadUrlToFile("https://drive.google.com/uc?export=download&confirm=no_antivirus&id=1IaCBM7cazaMq9NfLVIXtT0jONQAKBMgR", thisScript().path,  function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            lua_thread.create(function()
                sampAddChatMessage('• {FFC800}[Подсказка] {FFFFFF}Установка новой версии завершена.', -1)
                wait(400)
                thisScript():reload()
            end)
        end
    end)
end

За любую информацию буду благодарен
 

Вложения

  • SAMPFUNCS.log
    500.5 KB · Просмотры: 4

William_Roses

Активный
260
26
зачем ты эту хуиту делаешь, вот способ проверенный временем:
update:
function update()
    local fpath = os.getenv('TEMP') .. '\\Tvoj_Script_Nazvanie.json' -- куда будет качаться наш файлик для сравнения версии
    downloadUrlToFile('https://raw.githubusercontent.com/KenshiTV/scriptsoption/master/obnovlenie.txt', 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('[Tag]: Обновления {B70A0A}не были{FFFFFF} найдены', -1)
        end
        end
      end
    end
  end)
  end

  function goupdate()
    sampAddChatMessage(('{FFFFFF}[Tag]:{53D229} Обнаружено {FFFFFF}обновление. Загрузка...'), 0x6495ED)
    sampAddChatMessage(('{FFFFFF}[Tag]:{FFFFFF} Текущая версия: '..thisScript().version..". Новая версия: "..version), 0x6495ED)
    wait(300)
    downloadUrlToFile(updatelink, thisScript().path, function(id3, status1, p13, p23) -- качает ваш файлик с latest version
    if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
        sampAddChatMessage(('{FFFFFF}[Tag]:{FFFFFF} Обновление {53D229}завершено! {FFFFFF} Чтобы узнать что было добавлено пропишите команду /update'), 0x6495ED)
        thisScript():reload()
    end
  end)
  end
лично у меня все робит, ссылка на скачивание должна быть вот функция при команде:
function:
function checkupdate(arg) -- не знаю нахуя арг, просто так
update()
end
ах да чуть не забыл, не забудь вставить в скрипт
Lua:
script_version(5.1)


local dlstatus = require('moonloader').download_status
 

Bredd Lane

Известный
423
349
 
  • Нравится
Реакции: William_Roses

William_Roses

Активный
260
26
Не работает авто обнова. Пишу /checkupdates пишет пишет и скрипт превращается в какую то ересь. Обновления не происходит.
Приложил лог и код. Буду благодарен за любую информацию.

в начале скрипта:
Lua:
local dlstatus = require('moonloader').download_status

local version = '2.0'




Код авто обновы:
Lua:
function CheckUpdate()
    downloadUrlToFile("https://drive.google.com/uc?export=download&confirm=no_antivirus&id=1sBI1BHBSo5FyH3AWYajLB0C4xpGoIC93", os.getenv('TEMP') .. '\\version.txt',  function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(os.getenv('TEMP') .. '\\version.txt')
            if f then
                local newversion = f:read():match('version %= (.*)')
                if version ~= tostring(newversion) then
                    sampAddChatMessage('• {FFC800}[Подсказка] {FFFFFF}Обнаружена новая версия. Установка началась.', -1)
                    lua_thread.create(downloadNew)
                end
            end
        end
    end)
end

function downloadNew()
    wait(1200)
    downloadUrlToFile("https://drive.google.com/uc?export=download&confirm=no_antivirus&id=1IaCBM7cazaMq9NfLVIXtT0jONQAKBMgR", thisScript().path,  function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            lua_thread.create(function()
                sampAddChatMessage('• {FFC800}[Подсказка] {FFFFFF}Установка новой версии завершена.', -1)
                wait(400)
                thisScript():reload()
            end)
        end
    end)
end

За любую информацию буду благодарен
кстати ты создаешь поток
lua_thread.create(function()
В середине но в начале используешь wait, один вопрос, как блять?