globals
Таблица globals даёт глобальные переменные игры: время, тики, кадры, карту. Поле выбирается по имени; неизвестное имя даёт nil.
Если игра ещё не создала игровой клиент, все поля равны nil.
Поля#
| Поле | Тип | Запись | Описание |
|---|---|---|---|
realtime |
number |
да | реальное время, секунды |
curtime |
number |
да | игровое время, секунды |
frametime |
number |
да | время кадра |
absoluteframetime |
number |
да | абсолютное время кадра |
unfilteredframetime |
number |
да | нефильтрованное время кадра |
framecount |
number |
да | номер кадра |
tickcount |
number |
да | номер тика |
maxplayers |
number |
да | максимум игроков |
interpolation_amount |
number |
да | доля интерполяции |
in_simulation |
boolean |
да | идёт ли симуляция |
tickinterval |
number |
нет | длительность тика, всегда 0.015625 (1/64 с) |
level_name |
string |
нет | имя карты; вне игры "" |
level_name_short |
string |
нет | короткое имя карты |
client_tick |
number или nil |
нет | тик клиента |
server_tick |
number или nil |
нет | тик сервера |
- Запись в поле «нет» — ошибка
field is read-only. - Значение не того типа — ошибка
number expectedилиboolean expected.
Запись меняет живые глобальные переменные игры. Неверные значения ломают время, анимации и предсказание, вплоть до вылета.
local font = render.load_font("Verdana", 14, "outline")
events.render:set(function()
local text = string.format("%s | tick %d | %.0f fps", globals.level_name_short or "-", globals.tickcount or 0, 1 / math.max(globals.absoluteframetime or 1, 0.001))
render.text(vector2(20, 140), color(255, 255, 255, 255), font, nil, text)
end)