Краш ГТА при автообновлении! Хелп!

webb_

Участник
Автор темы
50
4
Версия MoonLoader
.026-beta
Lua:
function checkUpdates() -- проверка обновлений
    local fpath = os.tmpname()
    if doesFileExist(fpath) then os.remove(fpath) end
    downloadUrlToFile("some url", fpath, function(_, status, _, _)
        if status == dlstatus.STATUSEX_ENDDOWNLOAD then
            if doesFileExist(fpath) then
                local file = io.open(fpath, 'r')
                if file then
                    local info = decodeJson(file:read('*a'))
                    file:close()
                    os.remove(fpath)
                    script.v.num = info.version_num
                    script.v.date = info.version_date
                    script.url = info.version_url
                    script.quest = info.version_quest
                    script.label = info.version_label
                    script.upd.changes = info.version_upd
                    if script.quest then
                        for k, v in pairs(script.quest) do
                            srp_ini['Описание заданий'][k] = v
                        end
                        inicfg.save(srp_ini, settings)
                    end
                    if script.upd.changes then
                        for k in pairs(script.upd.changes) do
                            table.insert(script.upd.sort, k)
                        end
                        table.sort(script.upd.sort, function(a, b) return a > b end)
                    end
                    script.checked = true
                    if info['version_num'] > thisScript()['version_num'] then
                        script.available = true
                        if script.update then updateScript() return end
                        chatmsg(updatingprefix .. u8:decode"Обнаружена новая версия скрипта от " .. info['version_date'] .. u8:decode", пропишите /srpup для обновления")
                        chatmsg(updatingprefix .. u8:decode"Изменения в новой версии:")
                        if script.upd.sort ~= {} then
                            for k in ipairs(script.upd.sort) do
                                if script.upd.changes[tostring(k)] ~= nil then
                                    chatmsg(updatingprefix .. k .. ') ' .. u8:decode(script.upd.changes[tostring(k)]))
                                end
                            end
                        end
                        return true
                        else
                        if script.update then chatmsg(u8:decode"Обновлений не обнаружено, вы используете самую актуальную версию: v" .. script.v.num .. u8:decode" за " .. script.v.date) script.update = false return end
                    end
                    else
                    chatmsg(u8:decode"Не удалось получить информацию про обновления(")
                    thisScript():unload()
                end
                else
                chatmsg(u8:decode"Не удалось получить информацию про обновления(")
                thisScript():unload()
            end
        end
    end)
end
 

webb_

Участник
Автор темы
50
4
Не совсем понял, т.к с телефона, ты шо сначало написал end а потом else?

Юзай просто u8 вместо u8:decode потому что в таких случиях переменную надо выносить в скобки

Если не ошибаюсь
проблема не в u8, c else тоже всё в порядке

Help
 
Последнее редактирование: