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

vawylon

Участник
Автор темы
8
87
Text colorizer

img_1618408116__sa-mp-004.png


Здраствуйте дорогие форумчане!
Вчера появилась идея сделать инклуйд который позволил бы красить текст в разноцветный текст.
Его можно использовать не только в диалогах, но и в 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;
}

Скачать:

Автор Я. vawylon/pawlo