Вопрос Хелп по луа индикаторам

brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
как реализовать градиент текст как в экскорде и других луа? мб у кого то сурсы есть
пример
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,335
Реакции[?]
428
Поинты[?]
96K
fun calc_grad:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end

    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
fun calc_multiple_grads:
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count - 1 do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count - 1))))
    end
    return result
end
1661770531931.png
Только цвета надо в таблице передавать. Дальше сам поймешь о_0
 
Последнее редактирование:
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
fun calc_grad:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end

    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
fun calc_multiple_grads:
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count - 1 do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count - 1))))
    end
    return result
end
Посмотреть вложение 218861
Только цвета надо в таблице передавать. Дальше сам поймешь о_0
бро, а как это применить к тексту? у меня ваще котел не варит
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,335
Реакции[?]
428
Поинты[?]
96K
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
Начинающий
Статус
Оффлайн
Регистрация
19 Июн 2022
Сообщения
13
Реакции[?]
1
Поинты[?]
0
code_language.lua:
local init = renderer.setup_font("C:/windows/fonts/verdana.ttf", 55, 0)

local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end

    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end

local function draw()
    local text = "chlen"
    local color = calc_grad(color_t.new(255,255,255,255), color_t.new(255,0,0,255),2)

    for i in text do
        renderer.text(text[i], init, vec2_t.new(500, 400), 55, color)
    end
end   
client.register_callback("paint", draw)
типо так или как, обьясните
 
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
local init = renderer.setup_font("C:/windows/fonts/verdana.ttf", 55, 0)
local function calc_grad(color1, color2, factor)
if factor == nil then factor = 0.5 end
if factor > 1 or factor < 0 then error('incorrect factor') end
local result = {}
for i = 1, 3 do
result = math.floor(color1 + factor * (color2 - color1))
end
return result
end
local function draw()
local text = "chlen"
local color = calc_grad(color_t.new(255,255,255,255), color_t.new(255,0,0,255),2)
for i in text do
renderer.text(text, init, vec2_t.new(500, 400), 55, color)
end
end
client.register_callback("paint", draw)


типо так или как, обьясните
думаю что так
 
Начинающий
Статус
Оффлайн
Регистрация
19 Июн 2022
Сообщения
13
Реакции[?]
1
Поинты[?]
0
не работает так. у тебя получилось?
fun calc_grad:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end

    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
fun calc_multiple_grads:
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count - 1 do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count - 1))))
    end
    return result
end
Посмотреть вложение 218861
Только цвета надо в таблице передавать. Дальше сам поймешь о_0
помогите
 
Последнее редактирование:
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,335
Реакции[?]
428
Поинты[?]
96K
так вообще нихуя не рендерит, даже остальные индикаторы :roflanzdarova:
бля заебешь
если че на никсвар
Код:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end
    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count))))
    end
    return result
end
function wrap( t, l )
    for i = 1, l do
        table.insert( t, 1, t[#t] )
        table.remove( t, #t )
    end
end

local font = renderer.setup_font("c:/windows/fonts/smallest_pixel-7.ttf", 20, 0)
local text = {"c", "h", "u", "j", "c", "o", "r", "d"}

local count, delay = 5, 5 -- первую циферку можно #text чтоб круто

local colors = calc_multiple_grads({255,255,0}, {0,0,0}, count)
while #colors < #text do
  table.insert(colors, {0,0,0})
end

for i = #colors, 1, -1 do
    value = colors[i]
    table.insert(colors, value)
end

local start = vec2_t.new(
engine.get_screen_size().x / 2,
engine.get_screen_size().y / 2
)
local wrap_timer = 1

local function paint()
  wrap_timer = wrap_timer + 1
  local offset = 0
  for i = 1, #text do
    offset = offset + 10
    local pos = vec2_t.new(start.x + offset, start.y)

    renderer.text(text[i], font, pos, 20, color_t.new( colors[i][1], colors[i][2], colors[i][3], 255 ) )
  end
  if wrap_timer % delay == 1 or delay == 1 then wrap(colors, 1) end
end

client.register_callback("paint", paint)
 
Последнее редактирование:
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
бля заебешь
если че на никсвар
Код:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end
    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count))))
    end
    return result
end

local font = renderer.setup_font("c:/windows/fonts/smallest_pixel-7.ttf", 20, 0)
local text = {"c", "h", "u", "j", "c", "o", "r", "d"}

local count, delay = 5, 5 -- первую циферку можно #text чтоб круто

local colors = calc_multiple_grads({255,255,0}, {0,0,0}, count)
while #colors < #text do
  table.insert(colors, {0,0,0})
end

for i = #colors, 1, -1 do
    value = colors[i]
    table.insert(colors, value)
end

local start = vec2_t.new(
engine.get_screen_size().x / 2,
engine.get_screen_size().y / 2
)
local wrap_timer = 1

local function paint()
  wrap_timer = wrap_timer + 1
  local offset = 0
  for i = 1, #text do
    offset = offset + 10
    local pos = vec2_t.new(start.x + offset, start.y)

    renderer.text(text[i], font, pos, 20, color_t.new( colors[i][1], colors[i][2], colors[i][3], 255 ) )
  end
  if wrap_timer % delay == 1 or delay == 1 then wrap(colors, 1) end
end

client.register_callback("paint", paint)
+реп бро, под апи чита переделаю)
 
Начинающий
Статус
Оффлайн
Регистрация
19 Июн 2022
Сообщения
13
Реакции[?]
1
Поинты[?]
0
бля заебешь
если че на никсвар
Код:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end
    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count))))
    end
    return result
end

local font = renderer.setup_font("c:/windows/fonts/smallest_pixel-7.ttf", 20, 0)
local text = {"c", "h", "u", "j", "c", "o", "r", "d"}

local count, delay = 5, 5 -- первую циферку можно #text чтоб круто

local colors = calc_multiple_grads({255,255,0}, {0,0,0}, count)
while #colors < #text do
  table.insert(colors, {0,0,0})
end

for i = #colors, 1, -1 do
    value = colors[i]
    table.insert(colors, value)
end

local start = vec2_t.new(
engine.get_screen_size().x / 2,
engine.get_screen_size().y / 2
)
local wrap_timer = 1

local function paint()
  wrap_timer = wrap_timer + 1
  local offset = 0
  for i = 1, #text do
    offset = offset + 10
    local pos = vec2_t.new(start.x + offset, start.y)

    renderer.text(text[i], font, pos, 20, color_t.new( colors[i][1], colors[i][2], colors[i][3], 255 ) )
  end
  if wrap_timer % delay == 1 or delay == 1 then wrap(colors, 1) end
end

client.register_callback("paint", paint)
функция wrap пропала
 
Последнее редактирование:
brighter than the stars
Участник
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
590
Реакции[?]
171
Поинты[?]
3K
бля заебешь
если че на никсвар
Код:
local function calc_grad(color1, color2, factor)
    if factor == nil then factor = 0.5 end
    if factor > 1 or factor < 0 then error('incorrect factor') end
    local result = {}
    for i = 1, 3 do
        result[i] = math.floor(color1[i] + factor * (color2[i] - color1[i]))
    end
    return result
end
local function calc_multiple_grads(color1, color2, count)
    if count == nil then count = 10 end
    local result = {}
    for i = 0, count do
        table.insert(result, calc_grad(color1, color2, i * ( 1 / (count))))
    end
    return result
end
function wrap( t, l )
    for i = 1, l do
        table.insert( t, 1, t[#t] )
        table.remove( t, #t )
    end
end

local font = renderer.setup_font("c:/windows/fonts/smallest_pixel-7.ttf", 20, 0)
local text = {"c", "h", "u", "j", "c", "o", "r", "d"}

local count, delay = 5, 5 -- первую циферку можно #text чтоб круто

local colors = calc_multiple_grads({255,255,0}, {0,0,0}, count)
while #colors < #text do
  table.insert(colors, {0,0,0})
end

for i = #colors, 1, -1 do
    value = colors[i]
    table.insert(colors, value)
end

local start = vec2_t.new(
engine.get_screen_size().x / 2,
engine.get_screen_size().y / 2
)
local wrap_timer = 1

local function paint()
  wrap_timer = wrap_timer + 1
  local offset = 0
  for i = 1, #text do
    offset = offset + 10
    local pos = vec2_t.new(start.x + offset, start.y)

    renderer.text(text[i], font, pos, 20, color_t.new( colors[i][1], colors[i][2], colors[i][3], 255 ) )
  end
  if wrap_timer % delay == 1 or delay == 1 then wrap(colors, 1) end
end

client.register_callback("paint", paint)
я понимаю я тя заебал уже в край, но тут внатуре функции wrap нету)
 
Сверху Снизу