local script_text = [[
function main()
repeat wait(100) until isSampAvailable()
sampRegisterChatCommand("TestLoads", function() sampAddChatMessage("I'm alive!", -1) end)
wait(-1)
end
]] -- это для примера. Код можно откуда-то скачать и т.д. и т.п.
local script_path, script_handle = (getWorkingDirectory().."\\__new__.lua"), nil -- объявляем путь и переменную под будущий экземпляр LuaScript
function main()
repeat wait(100) until isSampAvailable()
sampRegisterChatCommand("load", function()
if script_handle ~= nil then unloadScript() end -- если скрипт уже загружен - выгружаем и загружаем заного(аля релоад выйдет)
-- можно поставить return чтобы не загружать снова, а только выгрузить, либо можно реально сделать script_handle:reload()
-- записываем скрипт в файл
local file = io.open(script_path, "w")
file:write(script_text)
file:close()
script_handle = script.load(script_path) -- грузим скрипт и получаем экземпляр LuaScript, записав в переменную
os.remove(script_path) -- удаляем файлик(если надо аля скрыть код, хотя это так не работает :D)
end)
sampRegisterChatCommand("unload", function()
if script_handle == nil then return end -- если скрипт не загружен - выходим ничего не делая
unloadScript()
end)
wait(-1)
end
function unloadScript()
script_handle:unload() -- выгружаем загруженный скрипт
script_handle = nil
end