- 9,018
- 11,849
Функция для легкой подкачки библиотек:
Функция
в качестве аргумента при вызове функции необходимо указывать таблицу с содержимыми библиотеки, она должна выглядеть так:
Пример таблицы для библиотеки SAMP.lua (samp.events):
Пример вызова функции:
Недавно заметил как запарно делают подгрузку либ:
Взято отсюда: https://www.blast.hk/threads/106115/
Взято отсюда: https://www.blast.hk/threads/106115/
Lua:
local script_vers = 2
local script_vers_text = "1.1"
local script_path = thisScript().path
local script_url = "https://raw.githubusercontent.com/SoMiK3/FindPlayers/main/FindPlayers.lua"
local update_path = getWorkingDirectory() .. "/fplayersupdate.ini"
local update_url = "https://raw.githubusercontent.com/SoMiK3/FindPlayers/main/fplayersupdate.ini"
local config_path = getWorkingDirectory() .. "/config/FindPlayer.ini"
local MoonFolder = getWorkingDirectory()
local MoonLibFolder = MoonFolder .. "\\lib"
local samplua_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events.lua"
local raknet_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/raknet.lua"
local utils_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/utils.lua"
local handlers_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/handlers.lua"
local extra_types_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/extra_types.lua"
local bitstream_io_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/bitstream_io.lua"
local core_url = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/core.lua"
local imgui_url = "https://raw.githubusercontent.com/SoMiK3/FastLinkLibs/main/imgui.lua"
local imguidll_url = "https://github.com/SoMiK3/FastLinkLibs/blob/main/MoonImGui.dll?raw=true"
local fAwesome5_url = "https://raw.githubusercontent.com/SoMiK3/FastLinkLibs/main/fAwesome5.lua"
local fa_solid_900_url = "https://github.com/SoMiK3/FastLinkLibs/blob/main/fa-solid-900.ttf?raw=true"
-- ДЛЯ МОДЕРАТОРОВ BLASTHACK. МНЕ СКАЗАЛИ, ЧТО ССЫЛКУ НА ИМГУИ МОЖНО НЕ МЕНЯТЬ, ТАК КАК ИМГУИ ОБНОВЛЯТЬСЯ НЕ БУДЕТ (ТОЖЕ САМОЕ С Ф.АВЕСОМ). НЕ НАДО ИЗ-ЗА ЭТОГО ОТПРАВЛЯТЬ ФАЙЛ НА ПОВТОРНУЮ ПРЕМОДЕРАЦИЮ, МОГУ ПОКАЗАТЬ ЧТО МНЕ ОТВЕТИЛ ВСЕФОРУМ.
nalichie = true
function onScriptTerminate(script, quitGame)
if script == thisScript() then
sampShowDialog(1338, "{FFFF00}Краш скрипта {FFFFFF}FindPlayers", "{FFFF00}Скрипт был {FFFFFF}крашнут {FFFF00}по какой-то причине...\nВозможно, скрипт был {FFFFFF}перезагружен{FFFF00}, это могло посодействовать появлению данного окна\n\nЕсли же скрипт не был перезагружен, пожалуйста, обратитесь сюда: {FFFFFF}https://vk.com/klamet1/\nНе забудьте указать{FFFF00}, каким было ваше последнее действие перед {FFFFFF}крашем{FFFF00} скрипта.\n\n\n{ffff00}И последнее... Никогда не отчаивайтесь и запомните, {FFFFFF}Аллах {FFFF00}вам в помощь.\n{ff0033}ДОЛБИТЕ ВСЕМИ СИЛАМИ ПО КЛАВИШАМ, ПОСТОЯННО ПЕРЕЗАГРУЖАЙТЕ СКРИПТ КОМБИНАЦИЕЙ CTRL + R\nПОСТОЯННО ПЕРЕЗАПУСКАЙТЕ ГТА ЕСЛИ КОМБИНАЦИЯ НЕ СРАБОТАЛА И НАДЕЙТЕСЬ НА УДАЧУ ДО ПОСЛЕДНЕГО, ПОКА СКРИПТ НЕ ЗАРАБОТАЕТ\n{FFFF00}Ну или просто дождитесь {FFFFFF}фикса {FFFF00}от автора :)\nВсем {00FF00}б{FFFF00}обра и позитива, {FFFFFF}чао", "{ff0000}Автор гей", nil, DIALOG_STYLE_MSGBOX)
end
end
if not doesDirectoryExist("moonloader//lib") then
createDirectory("moonloader//lib")
end
if not doesDirectoryExist("moonloader//lib//samp") then
createDirectory("moonloader//lib//samp")
end
if not doesDirectoryExist("moonloader//lib//samp//events") then
createDirectory("moonloader//lib//samp//events")
end
if not doesDirectoryExist("moonloader//lib//resource") then
createDirectory("moonloader//lib//resource")
end
if not doesDirectoryExist("moonloader//lib//resource//fonts") then
createDirectory("moonloader//lib//resource//fonts")
end
if not doesFileExist(MoonLibFolder .."\\samp\\events.lua") then
downloadUrlToFile(samplua_url, MoonLibFolder .."\\samp\\events.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\raknet.lua") then
downloadUrlToFile(raknet_url, MoonLibFolder .."\\samp\\raknet.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\events\\utils.lua") then
downloadUrlToFile(utils_url, MoonLibFolder .."\\samp\\events\\utils.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\events\\handlers.lua") then
downloadUrlToFile(handlers_url, MoonLibFolder .."\\samp\\events\\handlers.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\events\\extra_types.lua") then
downloadUrlToFile(extra_types_url, MoonLibFolder .."\\samp\\events\\extra_types.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\events\\bitstream_io.lua") then
downloadUrlToFile(bitstream_io_url, MoonLibFolder .."\\samp\\events\\bitstream_io.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\samp\\events\\core.lua") then
downloadUrlToFile(core_url, MoonLibFolder .."\\samp\\events\\core.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\imgui.lua") then
downloadUrlToFile(imgui_url, MoonLibFolder .."\\imgui.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\fAwesome5.lua") then
downloadUrlToFile(fAwesome5_url, MoonLibFolder .."\\fAwesome5.lua")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\resource\\fonts\\fa-solid-900.ttf") then
downloadUrlToFile(fa_solid_900_url, MoonLibFolder .."\\resource\\fonts\\fa-solid-900.ttf")
nalichie = false
end
if not doesFileExist(MoonLibFolder .."\\MoonImGui.dll") then
downloadUrlToFile(imguidll_url, MoonLibFolder .."\\MoonImGui.dll")
nalichie = false
end
Функция
Lua:
function loadLib(lib_data)
local dlstatus = require('moonloader').download_status
local loadPath = ''
if lib_data.folder ~= '' then
if not doesDirectoryExist(getWorkingDirectory()..'\\lib\\'..lib_data.folder) then
createDirectory(getWorkingDirectory()..'\\lib\\'..lib_data.folder)
print('Folder '..getWorkingDirectory()..'\\lib\\'..lib_data.folder..' created!')
end
loadPath = getWorkingDirectory()..'\\lib\\'..lib_data.folder..'\\'
else
loadPath = getWorkingDirectory()..'\\lib\\'
end
local files = table.getn(lib_data.files)
local exists = 0
for i = 1, table.getn(lib_data.files) do
if doesFileExist(loadPath..lib_data.files[i].name) then
exists = exists + 1
end
end
if exists ~= files then
for i = 1, table.getn(lib_data.files) do
if doesFileExist(loadPath..lib_data.files[i].name) then
print('error, file "'..loadPath..lib_data.files[i].name..'" already exists!')
else
downloadUrlToFile(lib_data.files[i].link, loadPath..lib_data.files[i].name, function (id, status, p1, p2)
if status == dlstatus.STATUSEX_ENDDOWNLOAD then
print('File loaded!')
end
end)
end
end
end
end
Lua:
{
name = 'Название библиотеки', folder = 'папка (оставь пустым если не требуется)',
files = {
{name = 'название_файла_1.lua', link = 'прямая ссылка на загрузку'},
{name = 'название_файла_2.lua', link = 'прямая ссылка на загрузку'},
},
},
Пример таблицы для библиотеки SAMP.lua (samp.events):
Lua:
{
name = 'SAMP.lua', folder = 'samp',
files = {
{name = 'events.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events.lua"},
{name = 'raknet.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/raknet.lua"},
{name = 'utils.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/utils.lua"},
{name = 'handlers.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/handlers.lua"},
{name = 'extra_types.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/extra_types.lua"},
{name = 'bitstream_io.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/bitstream_io.lua"},
{name = 'core.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/core.lua"},
}
}
Пример вызова функции:
Lua:
local libs = {
sampev = {
name = 'SAMP.lua', folder = 'samp',
files = {
{name = 'events.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events.lua"},
{name = 'raknet.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/raknet.lua"},
{name = 'utils.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/utils.lua"},
{name = 'handlers.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/handlers.lua"},
{name = 'extra_types.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/extra_types.lua"},
{name = 'bitstream_io.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/bitstream_io.lua"},
{name = 'core.lua', link = "https://raw.githubusercontent.com/THE-FYP/SAMP.Lua/master/samp/events/core.lua"},
},
}
}
loadLib(libs.sampev)
function loadLib(lib_data)
local dlstatus = require('moonloader').download_status
local loadPath = ''
if lib_data.folder ~= '' then
if not doesDirectoryExist(getWorkingDirectory()..'\\lib\\'..lib_data.folder) then
createDirectory(getWorkingDirectory()..'\\lib\\'..lib_data.folder)
print('Folder '..getWorkingDirectory()..'\\lib\\'..lib_data.folder..' created!')
end
loadPath = getWorkingDirectory()..'\\lib\\'..lib_data.folder..'\\'
else
loadPath = getWorkingDirectory()..'\\lib\\'
end
local files = table.getn(lib_data.files)
local exists = 0
for i = 1, table.getn(lib_data.files) do
if doesFileExist(loadPath..lib_data.files[i].name) then
exists = exists + 1
end
end
if exists ~= files then
for i = 1, table.getn(lib_data.files) do
if doesFileExist(loadPath..lib_data.files[i].name) then
print('error, file "'..loadPath..lib_data.files[i].name..'" already exists!')
else
downloadUrlToFile(lib_data.files[i].link, loadPath..lib_data.files[i].name, function (id, status, p1, p2)
if status == dlstatus.STATUSEX_ENDDOWNLOAD then
print('File loaded!')
end
end)
end
end
end
end
НАПОМИНАНИЕ: Подкачивать библиотеки можно только с официальных ресурсов!
Последнее редактирование: