LUA скрипт [GS] lualoader pre-alpha ver. 0.0.0.0.0.0.0.1

Участник
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
998
Реакции[?]
209
Поинты[?]
124K
По рукам не бить, селфкодед дерьмицо, фул ручками, чат гпт не смог помочь мне и я бился в истерике 3 недели
Guide:
1. запустить первый раз только эту луашку при старте чита, это важно
2. залоадить луашки которые вы хотите что бы загружались
3. сохранить конфиг (через create)
4. когда надо подгрузить луашки лоадите луашку и грузите конфиг
Примечания: бывают луашки которые крашат лоадер вместе с читом, бывает сочетание луашек которые крашут чит, загрузить можно только 1 конфиг за одни запуск игры, загрузка 2 разных конфигов друг за другом вызывает краш.
Зачем: Меня выбесил этот помойный чит, и я вряд ли буду это доделывать, но видел тему на форуме где обсуждали возможность данной фичи, решил попробовать себя.
я хз насколько он хорошо работать будет конкретно у вас, если что пишите в тему, посмеемся.

1.lua:
-- local variables for API functions. any changes to the line below will be lost on re-generation
local client_delay_call, client_reload_active_scripts, database_read, database_write, table_insert, table_remove, ui_reference, readfile, ui_get, ui_set, print, tonumber, ui_new_textbox, ui_set_callback, writefile, pairs, ui_new_button, ui_new_listbox, unpack, error, defer = client.delay_call, client.reload_active_scripts, database.read, database.write, table.insert, table.remove, ui.reference, readfile, ui.get, ui.set, print, tonumber, ui.new_textbox, ui.set_callback, writefile, pairs, ui.new_button, ui.new_listbox, unpack, error, defer

--credits: @sakenzo1337
local luabox = ui_reference("Config", "Lua", "Scripts")
local check = ui_reference("Config", "Lua", "Load on startup")
local loadb = ui_reference("Config", "Lua", "Load script")
local loadc = ui_reference("Config", "Lua", "Unload script")
--local inspect = require("gamesense/inspect")
local luat = {}
local cfgs = database_read("lualoader::cfgs") or {}
local toload = database_read("lualoader::toload")
local toloadsize = database_read("lualoader::loadsize") or 0
local prevent = readfile("luafix.txt") or 0
local cfgnames = {}
local n = 2147483648

if toload ~= nil and #toload > 0 and toloadsize > 0 then
    --print("Orig: ", inspect(toload))
    ui_set(luabox, toload[1])
    ui_set(luabox, toload[1])
    print("luafix.txt : ", prevent)
    if toloadsize >= tonumber(prevent) then
        table_remove(toload, 1)
        --print("removed: ", inspect(toload))
        writefile("luafix.txt", prevent + 1)
        client_delay_call(2, ui_set, loadb)
    else
        toload = nil
        toloadsize = 0
        writefile("luafix.txt", 0)
    end

end
do
    if cfgs ~= nil then
        for key, _ in pairs(cfgs) do
            table_insert(cfgnames, key)
        end
    end
end
local cfglistbox = ui_new_listbox("Config", "Lua", "Scripts", cfgnames)
local selfpos = ui_get(luabox)
local maxluas = database_read("lualoader::maxluas")

if maxluas == nil then

    local index = 0
    local prev, next = -1, 0
    while prev < next do
        index = index == selfpos and index + 1 or index
        ui_set(luabox, index)
        prev = ui_get(luabox)
        index = index + 1
        ui_set(luabox, index)
        next = ui_get(luabox)
    end
    maxluas = index - 1
    print("maxluas counted: ", maxluas)
    ui_set(luabox, -n + selfpos)
    --database_write("maxluas", index - 1)
end
function luat:is_in(val)
    for _, v in pairs(self) do
        if v == val then return true end
    end
    return false
end
local function get_activity()
    local prev, nex = -1, 0
    local index = 0
    while index < maxluas do
        if index == selfpos then index = index + 1 end
        ui_set(luabox, index)
        prev = ui_get(luabox)
        if prev == nex then
            ui_set(luabox, -n + index)
            prev = ui_get(luabox)
            if prev < 0 then
                prev = n + prev
                if not luat:is_in(prev) then table_insert(luat, prev) end
            end
        end
        index = index + 1
        ui_set(luabox, index)
        nex = ui_get(luabox)
        if nex == prev then
            ui_set(luabox, -n + index)
            nex = ui_get(luabox)
            if nex < 0 then
                nex = n + nex
                if not luat:is_in(nex) then table_insert(luat, nex) end
            end
        end
        --index = index + 1
    end
    ui_set(luabox, -n + selfpos)
    --print(inspect(luat))
end


--print(maxluas)
local cfgname = ui_new_textbox("Config", "Lua", "Name")
ui_set_callback(cfglistbox, function()
local current_name = cfgnames[ui_get(cfglistbox) + 1]
ui_set(cfgname, current_name)
end)
local b_create = ui_new_button("Config", "Lua", "Create", function()
local cname = ui_get(cfgname)
print(cname)
if cname ~= nil and cname:gsub("%s+", "") ~= "" then
    ui_set(luabox, -n + selfpos)
    get_activity()
    cfgs[cname] = {unpack(luat)}
    --database_write("lualoader::cfgs", cfgs)
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_load = ui_new_button("Config", "Lua", "Load", function()
local cname = ui_get(cfgname)
if cname ~= nil and cfgs[cname] ~= nil then
    ui_set(luabox, -n + selfpos)
    --print("LOADED: ", inspect(cfgs[cname]))
    toload = {unpack(cfgs[cname])}
    toloadsize = #toload
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_save = ui_new_button("Config", "Lua", "Save", function()
local cname = ui_get(cfgname)
if cfgs[cname] ~= nil then
    ui_set(luabox, -n + selfpos)
    get_activity()
    cfgs[cname] = {unpack(luat)}
    --database_write("lualoader::cfgs", cfgs)
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_delete = ui_new_button("Config", "Lua", "Delete", function()
local cname = ui_get(cfgname)
cfgs[cname] = nil
ui_set(luabox, -n + selfpos)
client_reload_active_scripts()
end)

function globsa()
    print("defered")
    database_write("lualoader::toload", toload)
    database_write("lualoader::cfgs", cfgs)
    database_write("lualoader::maxluas", maxluas)
    database_write("lualoader::loadsize", toloadsize)

end
defer(globsa)
 
Начинающий
Статус
Оффлайн
Регистрация
20 Авг 2024
Сообщения
66
Реакции[?]
0
Поинты[?]
0
По рукам не бить, селфкодед дерьмицо, фул ручками, чат гпт не смог помочь мне и я бился в истерике 3 недели
Guide:
1. запустить первый раз только эту луашку при старте чита, это важно
2. залоадить луашки которые вы хотите что бы загружались
3. сохранить конфиг (через create)
4. когда надо подгрузить луашки лоадите луашку и грузите конфиг
Примечания: бывают луашки которые крашат лоадер вместе с читом, бывает сочетание луашек которые крашут чит, загрузить можно только 1 конфиг за одни запуск игры, загрузка 2 разных конфигов друг за другом вызывает краш.
Зачем: Меня выбесил этот помойный чит, и я вряд ли буду это доделывать, но видел тему на форуме где обсуждали возможность данной фичи, решил попробовать себя.
я хз насколько он хорошо работать будет конкретно у вас, если что пишите в тему, посмеемся.

1.lua:
-- local variables for API functions. any changes to the line below will be lost on re-generation
local client_delay_call, client_reload_active_scripts, database_read, database_write, table_insert, table_remove, ui_reference, readfile, ui_get, ui_set, print, tonumber, ui_new_textbox, ui_set_callback, writefile, pairs, ui_new_button, ui_new_listbox, unpack, error, defer = client.delay_call, client.reload_active_scripts, database.read, database.write, table.insert, table.remove, ui.reference, readfile, ui.get, ui.set, print, tonumber, ui.new_textbox, ui.set_callback, writefile, pairs, ui.new_button, ui.new_listbox, unpack, error, defer

--credits: @sakenzo1337
local luabox = ui_reference("Config", "Lua", "Scripts")
local check = ui_reference("Config", "Lua", "Load on startup")
local loadb = ui_reference("Config", "Lua", "Load script")
local loadc = ui_reference("Config", "Lua", "Unload script")
--local inspect = require("gamesense/inspect")
local luat = {}
local cfgs = database_read("lualoader::cfgs") or {}
local toload = database_read("lualoader::toload")
local toloadsize = database_read("lualoader::loadsize") or 0
local prevent = readfile("luafix.txt") or 0
local cfgnames = {}
local n = 2147483648

if toload ~= nil and #toload > 0 and toloadsize > 0 then
    --print("Orig: ", inspect(toload))
    ui_set(luabox, toload[1])
    ui_set(luabox, toload[1])
    print("luafix.txt : ", prevent)
    if toloadsize >= tonumber(prevent) then
        table_remove(toload, 1)
        --print("removed: ", inspect(toload))
        writefile("luafix.txt", prevent + 1)
        client_delay_call(2, ui_set, loadb)
    else
        toload = nil
        toloadsize = 0
        writefile("luafix.txt", 0)
    end

end
do
    if cfgs ~= nil then
        for key, _ in pairs(cfgs) do
            table_insert(cfgnames, key)
        end
    end
end
local cfglistbox = ui_new_listbox("Config", "Lua", "Scripts", cfgnames)
local selfpos = ui_get(luabox)
local maxluas = database_read("lualoader::maxluas")

if maxluas == nil then

    local index = 0
    local prev, next = -1, 0
    while prev < next do
        index = index == selfpos and index + 1 or index
        ui_set(luabox, index)
        prev = ui_get(luabox)
        index = index + 1
        ui_set(luabox, index)
        next = ui_get(luabox)
    end
    maxluas = index - 1
    print("maxluas counted: ", maxluas)
    ui_set(luabox, -n + selfpos)
    --database_write("maxluas", index - 1)
end
function luat:is_in(val)
    for _, v in pairs(self) do
        if v == val then return true end
    end
    return false
end
local function get_activity()
    local prev, nex = -1, 0
    local index = 0
    while index < maxluas do
        if index == selfpos then index = index + 1 end
        ui_set(luabox, index)
        prev = ui_get(luabox)
        if prev == nex then
            ui_set(luabox, -n + index)
            prev = ui_get(luabox)
            if prev < 0 then
                prev = n + prev
                if not luat:is_in(prev) then table_insert(luat, prev) end
            end
        end
        index = index + 1
        ui_set(luabox, index)
        nex = ui_get(luabox)
        if nex == prev then
            ui_set(luabox, -n + index)
            nex = ui_get(luabox)
            if nex < 0 then
                nex = n + nex
                if not luat:is_in(nex) then table_insert(luat, nex) end
            end
        end
        --index = index + 1
    end
    ui_set(luabox, -n + selfpos)
    --print(inspect(luat))
end


--print(maxluas)
local cfgname = ui_new_textbox("Config", "Lua", "Name")
ui_set_callback(cfglistbox, function()
local current_name = cfgnames[ui_get(cfglistbox) + 1]
ui_set(cfgname, current_name)
end)
local b_create = ui_new_button("Config", "Lua", "Create", function()
local cname = ui_get(cfgname)
print(cname)
if cname ~= nil and cname:gsub("%s+", "") ~= "" then
    ui_set(luabox, -n + selfpos)
    get_activity()
    cfgs[cname] = {unpack(luat)}
    --database_write("lualoader::cfgs", cfgs)
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_load = ui_new_button("Config", "Lua", "Load", function()
local cname = ui_get(cfgname)
if cname ~= nil and cfgs[cname] ~= nil then
    ui_set(luabox, -n + selfpos)
    --print("LOADED: ", inspect(cfgs[cname]))
    toload = {unpack(cfgs[cname])}
    toloadsize = #toload
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_save = ui_new_button("Config", "Lua", "Save", function()
local cname = ui_get(cfgname)
if cfgs[cname] ~= nil then
    ui_set(luabox, -n + selfpos)
    get_activity()
    cfgs[cname] = {unpack(luat)}
    --database_write("lualoader::cfgs", cfgs)
    client_reload_active_scripts()
else
    error("NOCFG")
end
end)
local b_delete = ui_new_button("Config", "Lua", "Delete", function()
local cname = ui_get(cfgname)
cfgs[cname] = nil
ui_set(luabox, -n + selfpos)
client_reload_active_scripts()
end)

function globsa()
    print("defered")
    database_write("lualoader::toload", toload)
    database_write("lualoader::cfgs", cfgs)
    database_write("lualoader::maxluas", maxluas)
    database_write("lualoader::loadsize", toloadsize)

end
defer(globsa)
Это типо фикс луа на кряк QHide'а?
 
Сверху Снизу