Исходник Render.lua

d3x.m4nt1s

Потрачен
Автор темы
48
59
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Доподлинные причины создания этого, скажем так, модуля неизвестны, но имеем то, что имеем.
Lua:
local render = require 'lib.render'
local myrender = render.create()
Загружаем модуль, имеющий всего один метод create, который в свою очередь возвращает функции для работы с текстом.
Пример рендера простого текста:
Lua:
myrender.text('abc def\ntest')
myrender.font('Century Gothic')
myrender.size(20)
myrender.pos({x = 300, y = 300})
myrender.flags('bold shadow')
myrender.color('red')
myrender.opacity(50)
myrender.show()
Поддерживаются и цепочки вызовов, код выше можно переписать вот так:
Lua:
myrender.text('abc def\ntest')
    .font('Century Gothic')
    .size(20)
    .pos({x = 300, y = 300})
    .flags('bold shadow')
    .color('red')
    .opacity(50)
    .show()
Полный список всех доступных функций:
.show() - показать текст, по умолчанию он скрыт
.hide() - скрыть текст
.toggle() - показать / скрыть текст
.font() - установить шрифт
.size() - установить размер шрифта
.text() - установить текст
.pos({x, y}) - установить позицию, если координаты меньше 0, то отсчет будет от другой стороны экрана, например y=-50 поставит текст на 50 пикселей от самого низа
.color() - цвет в формате 0xFFFFFF / 'FFFFFF' / 'red/green/blue' (пока что только 3 текстовых варианта)
.flags() - установить флаги, поддерживается как в виде числа (для хардкорщиков), так и в виде названия флагов, перечисленных через пробел
.opacity() - прозрачность в %, от 0 до 100, по умолчанию 100 (абсолютно непрозрачно)
.fadein(duration) - эффект плавного появления, duration - длительность в секундах
.fadeout(duration) - эффект плавного исчезновения, duration - длительность в секундах
.fadetoggle(duration) - эффект плавного появления / исчезновения
.slide(axis, dest, duration) - эффект плавного перемещения, axis - ось ('x' или 'y'), dest - точка на оси, куда будет перемещен текст, duration - время в секундах
.blink(interval, times) - эффект моргания, interval - длительность одного моргания, times - сколько раз моргнуть
 

Вложения

  • render.lua
    4.1 KB · Просмотры: 785

d3x.m4nt1s

Потрачен
Автор темы
48
59
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добавлена возможность drag'n'drop для текста (перенос мышкой).

.dragstart() - включить драг-н-дроп, курсор должен быть активным
.dragstop() - отключить драг-н-дроп, текст перестанет реагировать на клики


Код из примера на видео. При зажатой клавише J показывается курсор:

Lua:
local render = require 'lib.render'

local myrender = render.create()
myrender.text(string.rep('some text\n', 5))
    .pos({x = 300, y = 300})
    .font('Century Gothic')
    .color('red')
    .opacity(100)
    .flags('bold shadow')
    .size(20)
    .dragstart()

local a = true

function main()
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand('rtest1', function ()
        myrender.fadein(0.5)
        myrender.slide('y', myrender.rpos.y + 50, 0.5)
    end)
    sampRegisterChatCommand('rtest2', function ()
        myrender.fadeout(0.5)
        myrender.slide('y', myrender.rpos.y - 50, 0.5)
    end)
    while true do
        wait(1)
        if isKeyDown(0x4A) then
            if a then sampSetCursorMode(2) end
            a = false
        else
            if not a then sampSetCursorMode(0) end
            a = true
        end
    end
end
 

Вложения

  • render.lua
    5.6 KB · Просмотры: 541