Предыстория
Однажды приходилось кодить для сингла, и я столкнулся с проблемой: вешать активацию на клавиши было жалко, а писать интерфейс для каждой примитивной хуйни было лень. Параллельно с этим возник вопрос о том, куда выводить сообщения.
Описание
Этот скрипт представляет из себя консоль, с которой можно взаимодействовать с помощью графического интерфейса или с помощью кода.
С UI все интуитивно понятно, а вот второй вариант нужно рассмотреть подробнее. Для начала нужно импортировать скрипт (для тех, кто не знает link)
Теперь console - это пространство имен со всеми публичными процедурами, а именно:
Вот немного примеров:
Скриншоты
Активация
Активацию можно изменить в файле настроек (moonloader/config/console.ini). По умолчанию F2
Зависимости
Dear ImGui
Однажды приходилось кодить для сингла, и я столкнулся с проблемой: вешать активацию на клавиши было жалко, а писать интерфейс для каждой примитивной хуйни было лень. Параллельно с этим возник вопрос о том, куда выводить сообщения.
Описание
Этот скрипт представляет из себя консоль, с которой можно взаимодействовать с помощью графического интерфейса или с помощью кода.
С UI все интуитивно понятно, а вот второй вариант нужно рассмотреть подробнее. Для начала нужно импортировать скрипт (для тех, кто не знает link)
Lua:
local console = import "console"
Теперь console - это пространство имен со всеми публичными процедурами, а именно:
Lua:
console.limitmsg() -- устанавливает ограничение количества сообщений. если число меньше нуля, то ограничение выключается
local msg = console.addmsg(text) -- добавляет сообщение и возвращает таблицу с функциями для взаимодействия с ним
local ok = msg.exists() -- существует сообщение или нет
msg.edit(text) -- редактирует сообщение
msg.remove() -- удаляет сообщение
console.clearmsg() -- удаляет все сообщения
local ok = console.cmdexists(name) -- существует команда или нет
console.regcmd(name, proc [, desc]) -- регистрирует команду
console.delcmd(name) -- удаляет команду
local ok, error = console.exec(command, param) -- выполняет команду
console.process_input(string) -- обрабатывает строку
console.addmsg_n(...) -- добавляет сообщения
console.regcmd_n(proc, desc, ...) -- регистрирует команду на сколько угодно имен
Вот немного примеров:
Lua:
local console = import "console"
console.addmsg("test")
-- >test
function main()
wait(-1)
end
Lua:
local console = import "console"
function foo()
console.addmsg("Hello World!")
end
console.regcmd("test", foo, "Says hello to the world")
function main()
wait(-1)
end
Lua:
local console = import "console"
function clock()
lua_thread.create(
function()
local msg = console.addmsg("")
while msg.exists() do
msg.edit(os.date("Current time: %X"))
wait(100)
end
end
)
end
console.regcmd("clock", clock)
function main()
wait(-1)
end
Скриншоты
Активация
Активацию можно изменить в файле настроек (moonloader/config/console.ini). По умолчанию F2
Зависимости
Dear ImGui
Вложения
Последнее редактирование: