Простой луа с текстдравом на экране

kravetc

Участник
Автор темы
43
4
Привет, пупсы. Кто-нибудь может за 3 минутки свободных своих накидать скрипт на lua, который будет выводить мне любую надпись на экран с возможностью менять позицию ?
Если вообще вы самый пиздатый человек на БХ, то я бы очень обрадовался, если бы надпись была " #Costa ", при этом слово "Costa" белым цветом, а символ # - фиолетовым ( b19fe1 )
Спасибо большое, ребята
 

Dmitriy Makarov

25.05.2021
Проверенный
2,484
1,114
TextDraw очень геморрный, у него очень много функций. Можешь в Вики сделать поиск "textdraw".
Не знаю, принимает ли TextDraw HEX код цвета внутри текста и можно ли менять цвет каждого символа отдельно в одном TextDraw'е или нет, ибо с ними не работал никогда.
Был бы комп рядом - протестировал бы, а так, возможности нет.
Но можешь попробовать.
Команда: /setpos [X] [Y]
Lua:
-- В начало скрипта.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        posX = 100,
        posY = 500,
    }
}, "settings.ini")
inicfg.save(mainIni, "settings.ini")


-- В main() до бесконечного цикла.
sampRegisterChatCommand("setpos", function(coords)
    local posX, posY = coords:match("(%d+) (%d+)")
    if tonumber(posX) and tonumber(posY) then
        mainIni.config.posX, mainIni.config.posY = posX, posY
        inicfg.save(mainIni, "settings.ini")
    else
        sampAddChatMessage("Используйте: /setpos [Позиция X] [Позиция Y]", -1)
    end
end)

-- Бесконечный цикл (while true do wait(0))
sampTextdrawCreate(1, "{B19FE1}#{FFFFFF}Costa", mainIni.config.posX, mainIni.config.posY)

Могу также предложить похожий вариант, только с рендером. Тут можно менять цвет каждого символа отдельно.
Команда также /setpos [X] [Y]
Lua:
-- В начало скрипта.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        posX = 100,
        posY = 500,
    }
}, "settings.ini")
inicfg.save(mainIni, "settings.ini")

local font = renderCreateFont("Arial", 9, 5) -- Arial - шрифт, 9 - размер, 5 - флаг (жирный, наклонный и т.д)
-- Поиграйся с флагом и подбери нужный.


-- В main() до бесконечного цикла.
sampRegisterChatCommand("setpos", function(coords)
    local posX, posY = coords:match("(%d+) (%d+)")
    if tonumber(posX) and tonumber(posY) then
        mainIni.config.posX, mainIni.config.posY = posX, posY
        inicfg.save(mainIni, "settings.ini")
    else
        sampAddChatMessage("Используйте: /setpos [Позиция X] [Позиция Y]", -1)
    end
end)

-- Бесконечный цикл (while true do wait(0))
renderFontDrawText(font, "{B19FE1}#{FFFFFF}Costa", mainIni.config.posX, mainIni.config.posY, -1)

Писал с телефона, надеюсь, ошибок нет.
 

kravetc

Участник
Автор темы
43
4
TextDraw очень геморрный, у него очень много функций. Можешь в Вики сделать поиск "textdraw".
Не знаю, принимает ли TextDraw HEX код цвета внутри текста и можно ли менять цвет каждого символа отдельно в одном TextDraw'е или нет, ибо с ними не работал никогда.
Был бы комп рядом - протестировал бы, а так, возможности нет.
Но можешь попробовать.
Команда: /setpos [X] [Y]
Lua:
-- В начало скрипта.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        posX = 100,
        posY = 500,
    }
}, "settings.ini")
inicfg.save(mainIni, "settings.ini")


-- В main() до бесконечного цикла.
sampRegisterChatCommand("setpos", function(coords)
    local posX, posY = coords:match("(%d+) (%d+)")
    if tonumber(posX) and tonumber(posY) then
        mainIni.config.posX, mainIni.config.posY = posX, posY
        inicfg.save(mainIni, "settings.ini")
    else
        sampAddChatMessage("Используйте: /setpos [Позиция X] [Позиция Y]", -1)
    end
end)

-- Бесконечный цикл (while true do wait(0))
sampTextdrawCreate(1, "{B19FE1}#{FFFFFF}Costa", mainIni.config.posX, mainIni.config.posY)

Могу также предложить похожий вариант, только с рендером. Тут можно менять цвет каждого символа отдельно.
Команда также /setpos [X] [Y]
Lua:
-- В начало скрипта.
local inicfg = require 'inicfg'
local mainIni = inicfg.load({
    config = {
        posX = 100,
        posY = 500,
    }
}, "settings.ini")
inicfg.save(mainIni, "settings.ini")

local font = renderCreateFont("Arial", 9, 5) -- Arial - шрифт, 9 - размер, 5 - флаг (жирный, наклонный и т.д)
-- Поиграйся с флагом и подбери нужный.


-- В main() до бесконечного цикла.
sampRegisterChatCommand("setpos", function(coords)
    local posX, posY = coords:match("(%d+) (%d+)")
    if tonumber(posX) and tonumber(posY) then
        mainIni.config.posX, mainIni.config.posY = posX, posY
        inicfg.save(mainIni, "settings.ini")
    else
        sampAddChatMessage("Используйте: /setpos [Позиция X] [Позиция Y]", -1)
    end
end)

-- Бесконечный цикл (while true do wait(0))
renderFontDrawText(font, "{B19FE1}#{FFFFFF}Costa", mainIni.config.posX, mainIni.config.posY, -1)

Писал с телефона, надеюсь, ошибок нет.
не, не работает
 

Вложения

  • moonloader.log
    357.7 KB · Просмотры: 2
  • Bug
Реакции: хомяк553

Dmitriy Makarov

25.05.2021
Проверенный
2,484
1,114
не, не работает
Код:
[13:05:02.752473] (error)    text.lua: ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: '=' expected near 'Text'
[13:05:02.753519] (error)    text.lua: Script died due to an error. (3C86D114)

[13:05:31.228621] (error)    text.lua: ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: attempt to call global 'TextDrawCreate' (a nil value)
stack traceback:
    ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: in main chunk
Что у тебя в скрипте text.lua есть помимо кода, что я дал?
Тебе в первой ошибке говорят, что ожидается символ "=" рядом с "Text", а вторая говорил, что вызываемая функция "TextDrawCreate" равна nil.
В коде, что я дал, подобного нет.
 

kravetc

Участник
Автор темы
43
4
Код:
[13:05:02.752473] (error)    text.lua: ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: '=' expected near 'Text'
[13:05:02.753519] (error)    text.lua: Script died due to an error. (3C86D114)

[13:05:31.228621] (error)    text.lua: ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: attempt to call global 'TextDrawCreate' (a nil value)
stack traceback:
    ...s\Arizona Games Launcher\bin\arizona\moonloader\text.lua:1: in main chunk
Что у тебя в скрипте text.lua есть помимо кода, что я дал?
Тебе в первой ошибке говорят, что ожидается символ "=" рядом с "Text", а вторая говорил, что вызываемая функция "TextDrawCreate" равна nil.
В коде, что я дал, подобного нет.
нема файла "текст.луа" у меня, удалял его
 

kravetc

Участник
Автор темы
43
4
Ну, он загружается без ошибок. Может он у тебя за экран вышел, потому что ввел не те координаты? Или из-за цвета?
Пробовал второй способ?
цвет убрал, оба способа пробовал. У меня на этих кордах еще стоят таймеры маски и брони, не должен выходить так-то
и команда /setpos не робит
кодировка Ansi стоит
с utf 8 тоже пробовал - не робит