swagsense
lua api documentation
loading lua scripts
-
1
поместите скрипт в папку
swagsense\scripts -
2
выберите скрипт из списка и нажмите "load"
пример скрипта
-- простой hitmarker скрипт
local hits = {}
local lifetime = 2.0
function on_paint()
if not game.is_in_game() then
return
end
local time = game.get_time()
local w, h = draw.get_screen_size()
local center_x = w / 2
local center_y = h / 2
-- рисуем все активные хитмаркеры
for i = #hits, 1, -1 do
local hit = hits[i]
local elapsed = time - hit.time
if elapsed > lifetime then
table.remove(hits, i)
else
local fade = 1.0 - (elapsed / lifetime)
local color = draw.color(255, 255, 255, fade * 255)
local size = 10 + elapsed * 5
-- рисуем крестик
draw.line(center_x - size, center_y - size,
center_x + size, center_y + size, color, 2)
draw.line(center_x + size, center_y - size,
center_x - size, center_y + size, color, 2)
end
end
end
function on_player_hurt(event)
table.insert(hits, {time = game.get_time()})
end
compiling lua scripts
draw api
draw.color(r, g, b, a)
создает объект цвета
- r - красный (0-255)
- g - зеленый (0-255)
- b - синий (0-255)
- a - прозрачность (0-255, опционально, по умолчанию 255)
local white = draw.color(255, 255, 255) local red = draw.color(255, 0, 0, 180) local blue = draw.color(0, 100, 255)
draw.text(x, y, text, color)
отрисовывает текст на экране
- x - координата X
- y - координата Y
- text - строка текста
- color - объект цвета
local white = draw.color(255, 255, 255) draw.text(100, 100, "swagsense", white)
draw.rect(x1, y1, x2, y2, color, rounding, thickness)
рисует прямоугольник
- x1, y1 - верхний левый угол
- x2, y2 - нижний правый угол
- color - объект цвета
- rounding - скругление углов (опционально)
- thickness - толщина линии (опционально, по умолчанию 1.0)
local white = draw.color(255, 255, 255) draw.rect(50, 50, 200, 150, white) draw.rect(50, 200, 200, 300, white, 10, 2)
draw.filled_rect(x1, y1, x2, y2, color, rounding)
рисует заполненный прямоугольник
- x1, y1 - верхний левый угол
- x2, y2 - нижний правый угол
- color - объект цвета
- rounding - скругление углов (опционально)
local blue = draw.color(50, 100, 255, 128) draw.filled_rect(50, 50, 200, 150, blue, 5)
draw.line(x1, y1, x2, y2, color, thickness)
рисует линию
- x1, y1 - начальная точка
- x2, y2 - конечная точка
- color - объект цвета
- thickness - толщина линии (опционально, по умолчанию 1.0)
local green = draw.color(0, 255, 0) draw.line(100, 100, 300, 200, green, 2)
draw.circle(x, y, radius, color, segments)
рисует окружность
- x, y - центр круга
- radius - радиус
- color - объект цвета
- segments - количество сегментов (опционально, по умолчанию 32)
local red = draw.color(255, 0, 0) draw.circle(400, 300, 50, red)
draw.filled_circle(x, y, radius, color, segments)
рисует заполненный круг
- x, y - центр круга
- radius - радиус
- color - объект цвета
- segments - количество сегментов (опционально, по умолчанию 32)
local yellow = draw.color(255, 255, 0, 180) draw.filled_circle(400, 300, 50, yellow)
draw.get_screen_size()
возвращает размер экрана
- width - ширина экрана
- height - высота экрана
local w, h = draw.get_screen_size()
print("Экран: " .. w .. "x" .. h)
ui api
gui.checkbox(name, var_path)
создает чекбокс в меню
- name - название элемента
- var_path - путь к переменной конфига
local enabled = gui.checkbox("включить", "lua.my_feature")
gui.slider(name, var_path, min, max)
создает слайдер в меню
- name - название элемента
- var_path - путь к переменной конфига
- min - минимальное значение
- max - максимальное значение
local value = gui.slider("размер", "lua.size", 0, 100)
gui.color_picker(name, var_path)
создает выбор цвета в меню
- name - название элемента
- var_path - путь к переменной конфига
local color = gui.color_picker("цвет", "lua.color")
game api
game.get_local_player()
возвращает локального игрока
- player - указатель на объект игрока или nil
local player = game.get_local_player()
if player then
print("игрок найден")
end
game.get_time()
возвращает текущее игровое время
- time - текущее время в секундах
local time = game.get_time()
print("игровое время: " .. time)
game.is_in_game()
проверяет находится ли игрок в игре
- is_in_game - true если в игре
if game.is_in_game() then
-- выполнить код только в игре
end
game.get_ping()
возвращает пинг игрока
- ping - пинг в миллисекундах
local ping = game.get_ping() draw.text(10, 10, "пинг: " .. ping, draw.color(255, 255, 255))
game.get_fps()
возвращает текущий FPS
- fps - кадры в секунду
local fps = game.get_fps() draw.text(10, 30, "FPS: " .. math.floor(fps), draw.color(0, 255, 0))
entitylist api
api для работы с игровыми сущностями в разработке...
events api
api для обработки игровых событий в разработке...
-- пример использования (будущая реализация)
function on_player_hurt(event)
print("игрок получил урон")
end
cvars api
api для работы с консольными переменными в разработке...
netvars api
api для работы с сетевыми переменными в разработке...
utils api
utils.lerp(a, b, t)
линейная интерполяция между двумя значениями
- a - начальное значение
- b - конечное значение
- t - коэффициент интерполяции (0-1)
local result = utils.lerp(0, 100, 0.5) -- результат: 50 local smooth = utils.lerp(current, target, 0.1)
utils.clamp(value, min, max)
ограничивает значение в заданном диапазоне
- value - значение для ограничения
- min - минимальное значение
- max - максимальное значение
local clamped = utils.clamp(150, 0, 100) -- результат: 100 local alpha = utils.clamp(alpha, 0, 255)
environment api
api для работы с окружением в разработке...