- 109
- 10
- Версия MoonLoader
- .026-beta
Автообновление работает, ибо аналогичное автообновление присутствует в другом скрипте. Но в этом, почему то, скрипт вызывает множество "пустых" ошибок, и после долгих попыток обновиться, самп вылетает
При условии, что оба скрипта (старая и новая версия) работают нормально (если убрать из кода автообновление)
Вот код автообновления:
Log:
[07:19:31.343763] (script) ML-AutoReboot: Reloading "Battle-Pass-Info.lua"...
[07:19:31.359721] (system) Battle-Pass-Info.lua: Script terminated. (11E2B9EC)
[07:19:31.360718] (system) Loading script 'D:\SAMSA MEDIUM PC\moonloader\Battle-Pass-Info.lua'...
[07:19:31.360718] (debug) New script: 1D03FA0C
[07:19:31.373685] (system) Battle-Pass-Info.lua: Loaded successfully.
[07:19:32.041282] (system) Battle-Pass-Info.lua: Script terminated. (1D03FA0C)
[07:19:32.042282] (system) Loading script 'D:\SAMSA MEDIUM PC\moonloader\Battle-Pass-Info.lua'...
[07:19:32.042282] (debug) New script: 1D03FB94
[07:19:32.055246] (system) Battle-Pass-Info.lua: Loaded successfully.
[07:19:32.550877] (script) ML-AutoReboot: Reloading "Battle-Pass-Info.lua"...
[07:19:32.554896] (system) Battle-Pass-Info.lua: Script terminated. (1D03FB94)
[07:19:32.554896] (system) Loading script 'D:\SAMSA MEDIUM PC\moonloader\Battle-Pass-Info.lua'...
[07:19:32.555862] (debug) New script: 1D03FA0C
[07:19:32.568861] (system) Battle-Pass-Info.lua: Loaded successfully.
[07:19:33.067916] (error) Battle-Pass-Info.lua: error in error handling
[07:19:33.067916] (error) Battle-Pass-Info.lua: Script died due to an error. (1D03FA0C)
Вот код автообновления:
Lua:
require "lib.sampfuncs"
local moonloader = require('moonloader')
local sampev = require 'lib.samp.events'
local requests = require('requests')
local encoding = require 'encoding'
-- Ссылка на файл обновлений
local raw = 'тут рабочая ссылка, просто не знаю, можно ли сюда отправлять))))'
function update()
local dlstatus = moonloader.download_status
local f = {}
function f:getLastVersion()
local response = requests.get(raw)
if response.status_code == 200 then
return decodeJson(response.text)['last']
else
return 'UNKNOWN'
end
end
function f:download()
local response = requests.get(raw)
if response.status_code == 200 then
downloadUrlToFile(decodeJson(response.text)['url'], thisScript().path, function(id, status)
if status == dlstatus.STATUSEX_ENDDOWNLOAD then
sampAddChatMessage('Скрипт обновлен, перезагрузка...', -1)
thisScript():reload()
end
end)
else
sampAddChatMessage('Ошибка: невозможно обновить скрипт. Код: '..response.status_code, -1)
end
end
return f
end
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage("[Battle Pass Info]: {FFFFFF}Battle Pass Info 2 запущен успешно. Активация: {87CEFA}/mn - 8. {FFFFFF}Разработчик - {87CEFA}Arseniy Samsonov", 0x40E0D0)
-- Проверка версии
local updater = update()
local lastver = updater:getLastVersion()
sampAddChatMessage('Скрипт загружен, версия: '..lastver, -1)
if thisScript().version ~= lastver then
sampAddChatMessage('[Battle Pass Info] {FFFFFF}Доступно обновление {87CEFA}('..thisScript().version..' -> '..lastver..'). Скачиваю обновление...', 0x40E0D0)
updater:download()
end
while true do
wait(0)
end
end