-
Автор темы
- #1
По рукам не бить, селфкодед дерьмицо, фул ручками, чат гпт не смог помочь мне и я бился в истерике 3 недели
Guide:
1. запустить первый раз только эту луашку при старте чита, это важно
2. залоадить луашки которые вы хотите что бы загружались
3. сохранить конфиг (через create)
4. когда надо подгрузить луашки лоадите луашку и грузите конфиг
Примечания: бывают луашки которые крашат лоадер вместе с читом, бывает сочетание луашек которые крашут чит, загрузить можно только 1 конфиг за одни запуск игры, загрузка 2 разных конфигов друг за другом вызывает краш.
Зачем: Меня выбесил этот помойный чит, и я вряд ли буду это доделывать, но видел тему на форуме где обсуждали возможность данной фичи, решил попробовать себя.
я хз насколько он хорошо работать будет конкретно у вас, если что пишите в тему, посмеемся.
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)