Загрузка библиотек

the same

Активный
Автор темы
181
24
Версия MoonLoader
Другое
Как правильно сделать авто загрузку не достающих библиотек?

Тоесть, сделал систему загрузки, но она не успевает срабатывать и скрипт крашится "Нет библиотеки" .

Код:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local SE = require 'samp.events'
local imadd = require 'imgui_addons'
local requests = require 'requests'

function  loading_libraries()
    if not doesFileExist("moonloader/lib/fAwesome5.lua") then
   
        sampAddChatMessage(tag .. 'Файл  fAwesome5.lua не обноружен, началось автоматическое скачивание, не закрывайте игру!', -1)
        download_id = downloadUrlToFile('ссылочка', 'moonloader/lib/fAwesome5.lua', function(id, status, p1, p2)
            if status == dlstatus.STATUS_ENDDOWNLOADDATA then
                    ReloadScripts()
                    sampAddChatMessage(tag .. 'Скачивание успешно завершено')
                    -- когда много
                end)
               
            end
        end)
    end
end

loading_libraries()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local fa = require ('fAwesome5')
local fa_font = nil
 
Последнее редактирование:

YarikVL

Известный
Проверенный
4,740
1,816
Как правильно сделать авто загрузку не достающих библиотек?

Тоесть, сделал систему загрузки, но она не успевает срабатывать и скрипт крашится "Нет библиотеки" .

Код:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local SE = require 'samp.events'
local imadd = require 'imgui_addons'
local requests = require 'requests'

function  loading_libraries()
    if not doesFileExist("moonloader/lib/fAwesome5.lua") then
  
        sampAddChatMessage(tag .. 'Файл  fAwesome5.lua не обноружен, началось автоматическое скачивание, не закрывайте игру!', -1)
        download_id = downloadUrlToFile('ссылочка', 'moonloader/lib/fAwesome5.lua', function(id, status, p1, p2)
            if status == dlstatus.STATUS_ENDDOWNLOADDATA then
                    ReloadScripts()
                    sampAddChatMessage(tag .. 'Скачивание успешно завершено')
                    -- когда много
                end)
              
            end
        end)
    end
end

loading_libraries()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local fa = require ('fAwesome5')
local fa_font = nil
pcall?🤔
 
  • Нравится
Реакции: the same и Lance_Sterling

Lance_Sterling

Известный
992
354
Как правильно сделать авто загрузку не достающих библиотек?

Тоесть, сделал систему загрузки, но она не успевает срабатывать и скрипт крашится "Нет библиотеки" .

Код:
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local SE = require 'samp.events'
local imadd = require 'imgui_addons'
local requests = require 'requests'

function  loading_libraries()
    if not doesFileExist("moonloader/lib/fAwesome5.lua") then
 
        sampAddChatMessage(tag .. 'Файл  fAwesome5.lua не обноружен, началось автоматическое скачивание, не закрывайте игру!', -1)
        download_id = downloadUrlToFile('ссылочка', 'moonloader/lib/fAwesome5.lua', function(id, status, p1, p2)
            if status == dlstatus.STATUS_ENDDOWNLOADDATA then
                    ReloadScripts()
                    sampAddChatMessage(tag .. 'Скачивание успешно завершено')
                    -- когда много
                end)
            
            end
        end)
    end
end

loading_libraries()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local fa = require ('fAwesome5')
local fa_font = nil
Lua:
-- \\ Спизжено с https://wiki.blast.hk/moonloader/lua/downloadUrlToFile
local dlstatus = require('moonloader').download_status

function download_handler(id, status, p1, p2)
  if status == dlstatus.STATUS_DOWNLOADINGDATA then
    print(string.format('Загружено %d из %d.', p1, p2))
  elseif status == dlstatus.STATUS_ENDDOWNLOADDATA then
    print('Загрузка завершена.')
  end
end

local req, require = require, function(lib, url, path)
    local result, data = pcall(req, lib)
    if not result then
        print('Error: Lib '..lib..' not found');
        downloadUrlToFile(url, path, download_handler)
    end
    return data
end

-- \\ Пример:
local effil = require('MoonMonet', 'прямая ссылак', getWorkingDirectory()..'\\lib\\effil.lua')
-- \\ Скачается файл если не найдена либка

-- \\ Код может не работать, не тестировал, писал в ручную, но если что исправь сам
 
  • Нравится
Реакции: the same