Градиент в чате

khood

Участник
Сообщения
273
Реакции
95
Операционная система
Linux
как сделать такой же градиент человеку ?
 

Вложения

  • 1691226463852.png
    1691226463852.png
    4.1 КБ · Просмотры: 265

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Скриптом проходя по каждому символу и выставляя перед ним цветовой индекс (в CS:S это вроде как HEX). Но учтите что длинная сообщения, что сможет написать игрок, будет сокращена в разы, потому что цвета занимают пространство в тексте.
 

khood

Участник
Сообщения
273
Реакции
95

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
name = "Chat-Processor",
description = "Replacement for Simple Chat Processor.",
author = "Drixevel",
version = "2.2.2",
Попробуйте данный плагин:

C-подобный:
#include <chat-processor>
stock void AddGradiant(char[] buffer, int maxlen) 
{
    int pos = strlen(buffer), offset, gradiant;
    bool reverse;

    while (pos) 
    {
        const int COLORS = 5;

        gradiant = (offset * 255) / (COLORS + 1);

        Format(buffer[pos], maxlen, "\x07%02X%02X%02X%s", gradiant, gradiant, gradiant, buffer[--pos]);

        if(offset >= COLORS) {
            reverse = true;
        } else if(offset == 0) {
            reverse = false;
        }

        offset += reverse ? -1 : 1;
    }
}

public Action CP_OnChatMessage(int& author, ArrayList recipients, char[] flagstring, char[] name, char[] message, bool & processcolors, bool & removecolors)
{
    AddGradiant(name, MAXLENGTH_NAME);

    return Plugin_Changed;
}

Превью как это будет выглядить (это не в игре, но там такой-же градиент будет)
1691341110244.png
 

Вложения

  • GradientChat.sp
    791 байт · Просмотры: 17
Последнее редактирование:

DeathScore13

пирожок. пирожочек.
Сообщения
746
Реакции
428
Попробуйте данный плагин:

C-подобный:
#include <chat-processor>
stock void AddGradiant(char[] buffer, int maxlen)
{
    int pos = strlen(buffer), offset = 1, gradiant;
    while (pos)
    {
        gradiant = (offset * 255) / (8 - 1);
        Format(buffer[pos], maxlen, "\x07%02X%02X%02X%s", gradiant, gradiant, gradiant, buffer[--pos]);
        offset = (++offset >= 8) ? 1 : offset;
    }
}
public Action CP_OnChatMessage(int& author, ArrayList recipients, char[] flagstring, char[] name, char[] message, bool & processcolors, bool & removecolors)
{
    AddGradiant(name, MAXLENGTH_NAME);
    return Plugin_Changed;
}
чувак, что-то ты обманываешь. я только что закончил делать сток для градиента и у меня вышло 140 строк
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
чувак, что-то ты обманываешь. я только что закончил делать сток для градиента и у меня вышло 140 строк
Ну не знаю, не знаю, возможно у тебя там что-то хитро-мудрое... у меня просто 255 делиться на 8 частей, которые и будут основными серыми цветами (можно и больше частей, будет плавнее градиент), с чем-то тут ещё мудрить не вижу смысла, ТЗ то выполнено по факту, хоть и с цыгантской магией...
 

DeathScore13

пирожок. пирожочек.
Сообщения
746
Реакции
428
@khood это будет не скоро, т.к. у меня сейчас даже ноута нет. как минимум ещё 3 месяца ждать надо
 
Сверху Снизу