Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 1 из 1
  1. #1
    Аватар для vawylon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.04.2021
    Сообщений
    4
    Репутация:
    1 ±

    Text colorize | Разукрашиваем текст в радугу с плавным переходом

    Text colorizer



    Здраствуйте дорогие форумчане!
    Вчера появилась идея сделать инклуйд который позволил бы красить текст в разноцветный текст.
    Его можно использовать не только в диалогах, но и в MaterialText так и 3D текст.
    Я сильно не запаривался и не углублялся в глупокий дзен оптимизации. тупа по фану и на коленке.
    В чём суть спросите вы. Не поверите но у цвета есть множество форматов и одно из них RGB. Ок, но как на счёт HSV?
    Тем кто вообще только что познакомился с HSL.
    Читаем эту тему
    Wikipedia

    Там формула есть HSV в RGB ок вот она:

    Код:
    stock HSVtoRGB(Float:H, Float:S = 100.0, Float:V= 100.0)
    H от 0.0 до 360.0!!!
    S - тон
    V - насыщенность
    возвращает RGB цвет
    Код:
    stock HSVtoRGBA(Float:H, A = 0xFF, Float:S = 100.0, Float:V= 100.0)
    возвращает RGBA цвет
    Красим текст::
    Код:
    ColorazeText(text[], Float: hstart = 0.0, Float: hend = 360.0, sizet = sizeof(text))
    text - текст
    hstar - начало цветового тона
    hend - конец цветового тона
    sizet - максимальная длинна
    Прошу обратить внимание!!!!!!!!!
    Вы создали массив 128 байт и размер текста будет 120 цвет просто на просто закрасится одним цветом.
    Вы должны брать с запасом.

    Использование
    Код:
    new line[256] = "&c1.List
    &c2.List
    &c3.List
    &c4.List
    &c5.List";
    ColorazeText(line, 120.0, 230);
    &c - заменится на цвета "{ff0000}" в диапазоне от "hstart" до "hend"

    Красим строку:
    Код:
    ColorizeString(string[], Float: hstart = 0.0, Float: hend = 360.0, ssize = sizeof(string))
    Всё тоже самое только закрасит строку в диапазон цветов он hstart до hend
    Использование:
    Код:
    new line[256] = "||||||||||||||||||||||||||||||||||||||||||||||||";
    ColorizeString(line);
    Пример диалога который на скриншоте:
    Код:
    CMD:colorize(playerid)
    {
        new string[2048];
         new line[256] = "||||||||||||||||||||||||||||||||||||||||||||||\n"; символы которые на скриншоте не отображаются. заменил на то что есть. в чате зажмите LCNTRL + Backspace
        ColorizeString(line);
        strcat(string, line);
      
        line = "||||||||||||||||||||||||||||||||||||||||||||||\n";
        ColorizeString(line, 120.0, 260.0);
        strcat(string, line);
      
        line = "&c1. List\n&c2. List\n&c3. List\n&c4. List\n&c5. List\n&c6. List\n&c7. List\n&c8. List\n&c9. List\n&c10. List\n&c11. List\n&c12. List";
        ColorazeText(line, 120.0, 230);
        strcat(string, line, sizeof(string));
      
        new head[128] = "Text colorize by vawylon";
        ColorizeString(head, 120.0, 290.0);
      
        new leftbutton[128] = "Выбрать";
        ColorizeString(leftbutton, 90.0, 0);
      
        new rightbutton[128] = "Закрыть";
        ColorizeString(rightbutton, 0.0, 90);
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, head, string, leftbutton, rightbutton);
        return 1;
    }
    Скачать:
    https://github.com/vawylon/Text-Colorize
    https://disk.yandex.ru/d/2tRyo4ORD894bA

    Автор Я. vawylon/pawlo

  2. Пользователь сказал cпасибо:
    Seviel (15.04.2021)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •