Введение
Скрипт — это модуль клиента, который вы пишете сами. Он получает те же данные, что и встроенные модули, и рисует поверх игры теми же средствами.
Что такое скрипт
Каждый скрипт появляется в клиенте как отдельный модуль в категории Miscellaneous. У него есть своё имя, бинд и настройки, он включается и выключается как любой другой модуль. Пока модуль выключен, код не выполняется.
Скрипты хранятся в облаке и подтягиваются клиентом автоматически: сохранили в редакторе — клиент перезагрузил модуль. Перезаходить в игру не нужно.
Как он устроен
Файл выполняется один раз при загрузке. В этот момент создаются настройки и подписки на события. Дальше работают только колбэки.
local show = ui.checkbox("Показывать", true)
events.on("render2d", function()
if not player.exists() or not show.get() then return end
render.font_text("привет", 10, 10, 0xFFFFFFFF, 7, "medium")
end)Здесь ui.checkbox создаёт настройку в панели модуля, а events.on подписывает функцию на кадр отрисовки. Функция вызывается каждый кадр, пока модуль включён.
Язык и окружение
Lua 5.2table.unpack вместо unpack, goto, bit32string, table, math, coroutineстандартные библиотеки доступны полностьюio, os, debug, require, loadотключены: скрипт не читает файлы и не грузит чужой код250 мспредел на один вызов колбэка, дальше скрипт выгружается20 раз в секундучастота события tickОшибки
Если внутри колбэка происходит ошибка, клиент выгружает скрипт и показывает причину поверх игры. Модуль остаётся выключенным, пока вы не исправите код и не сохраните его заново.