Иконка ресурса

[INC] CS:GO Colors 1.6

Нет прав для скачивания

komashchenko

Идиот
Меценат
Сообщения
890
Реакции
2,243
  • Автор ресурса
  • #1
Пользователь komashchenko разместил новый ресурс:

[INC] CS:GO Colors - Позволяет разработчикам легко управлять цветами шрифта чата в различных игровых модах

CS:GO Colors
Описание:
Этот файл позволяет разработчикам легко управлять цветами шрифта чата в различных игровых модах, использовать теги цветов, использовать теги в файлах перевода и автоматически заменять цвета в...

Узнать больше об этом ресурсе...
 
Последнее редактирование модератором:

progammisst

Участник
Сообщения
1
Реакции
1
Re: [INC] CS:GO Colors (1.0)

Я че т не совсем понял как устанавливать, кто может помочь напишите в скайп плиз: lostghost79
 

infomail228r

Участник
Сообщения
11
Реакции
0
Re: [INC] CS:GO Colors (1.0)

komashchenko, а не могли бы вы добавить в этот инклуд, функцию переноса строки \n и чтобы в файлах перевода так-же работало.

P.S Вот тут вроде есть что-то похожее, но как совместить CGOPrintToChat и ExtraPrintToChat, если только не объединить воедино.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,127
Реакции
2,338
[INC] CS:GO Colors (1.1) на 3+

PHP:
if(client <= 0 || client > MaxClients) ThrowError("Invalid client index %i", client);
	if(!IsClientInGame(client)) ThrowError("Client %i is not in game", client);
Бред.
Смысл такого inc в том, чтобы просто подставлять приставку CGO к стандартным нативам. В них уже должны быть сделаны все эти проверки. Так на кой ты спамишь ошибками, если стандартный натив сделает это за тебя?! Раз уж взялся за такого рода проверки, то просто делай их:
PHP:
if(0 < client <= MaxClients && IsClientInGame(client))
{
// Код.
}
Короче, эффективней и чуть менее ресурсоёмко для сервера, что большой плюс, учитывая частое применение чата, например.
PHP:
decl String:text[512];
VFormat(text, sizeof(text), message, 3); 
CGOReplaceColorSay(text, sizeof(text));
Если ты сам ограничил строку до 512, а не задал автоматическое определение размера массива, как это сделал я в ExtraPrintToChat, то зачем целых 2 раза (это не только здесь, но и далее по 1-2) проверять её размер?
PHP:
decl String:text[512];
VFormat(text, 512, message, 3);
CGOReplaceColorSay(text, 512);
Так хотя бы сделай. Пойми, inc - это файл для масштабного применения, тем более, когда касается чата, то "чистота" кода и его эффективность должна быть близка к 100%, без единого лишнего действия!
PHP:
GOPrintToChat(true, client, text);
Лучше написать ещё раз целиком, чем пересылать к следующему "сокращению". Ведь при этом SM приходится не только искать нужные строки, но сохранять всё, что ты при этом передаёшь (false/true, client, строка).
PHP:
ReplaceString(tex, sizeof(tex), "\n", "{}");
new nuM = ExplodeString(tex, "{}", buf, 10, 512);
Бесполезное действие... Если без замены символа \n на другой не работает, то хотя бы пожалей SM - пусть он всего 1 символ подставляет, а не снова 2. И искать ему далее будет также легче 1, чем сверять указанных 2.
Твоя попытка переснять мой код на свой лад - весьма печальна...
 

pokypka20

Участник
Сообщения
244
Реакции
30
Re: [INC] CS:GO Colors (1.1) на 3+

PHP:
if(client <= 0 || client > MaxClients) ThrowError("Invalid client index %i", client);
	if(!IsClientInGame(client)) ThrowError("Client %i is not in game", client);
Бред.
Смысл такого inc в том, чтобы просто подставлять приставку CGO к стандартным нативам. В них уже должны быть сделаны все эти проверки. Так на кой ты спамишь ошибками, если стандартный натив сделает это за тебя?! Раз уж взялся за такого рода проверки, то просто делай их:
PHP:
if(0 < client <= MaxClients && IsClientInGame(client))
{
// Код.
}
Короче, эффективней и чуть менее ресурсоёмко для сервера, что большой плюс, учитывая частое применение чата, например.
PHP:
decl String:text[512];
VFormat(text, sizeof(text), message, 3); 
CGOReplaceColorSay(text, sizeof(text));
Если ты сам ограничил строку до 512, а не задал автоматическое определение размера массива, как это сделал я в ExtraPrintToChat, то зачем целых 2 раза (это не только здесь, но и далее по 1-2) проверять её размер?
PHP:
decl String:text[512];
VFormat(text, 512, message, 3);
CGOReplaceColorSay(text, 512);
Так хотя бы сделай. Пойми, inc - это файл для масштабного применения, тем более, когда касается чата, то "чистота" кода и его эффективность должна быть близка к 100%, без единого лишнего действия!
PHP:
GOPrintToChat(true, client, text);
Лучше написать ещё раз целиком, чем пересылать к следующему "сокращению". Ведь при этом SM приходится не только искать нужные строки, но сохранять всё, что ты при этом передаёшь (false/true, client, строка).
PHP:
ReplaceString(tex, sizeof(tex), "\n", "{}");
new nuM = ExplodeString(tex, "{}", buf, 10, 512);
Бесполезное действие... Если без замены символа \n на другой не работает, то хотя бы пожалей SM - пусть он всего 1 символ подставляет, а не снова 2. И искать ему далее будет также легче 1, чем сверять указанных 2.
Твоя попытка переснять мой код на свой лад - весьма печальна...

Насколько я понял, код должен быть таким?
PHP:
/**************************************************************************
 *                             CS:GO COLORS                               *
 *                     Автор: Феникс(komashchenko)                        *
 *                            Version: 1.1                                *
 *                  http://zizt.ru/  http://hlmod.ru/                     *
 * 03.07.2014 - V1.0: Релиз                                               *
 * 13.10.2014 - V1.1: Обнова                                              *
 **************************************************************************/

#define ZCOLOR 13
 
new String:color_t[ZCOLOR][] = {"{DEFAULT}", "{RED}", "{LIGHTPURPLE}", "{GREEN}", "{LIME}", "{LIGHTGREEN}", "{LIGHTRED}", "{GRAY}", "{LIGHTOLIVE}", "{OLIVE}", "{LIGHTBLUE}", "{BLUE}", "{PURPLE}"};
new String:color_c[ZCOLOR][] = {"\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x10", "\x0B", "\x0C", "\x0E"};
 

stock CGOPrintToChat(client, const String:message[], any:...)
{
	if(0 < client <= MaxClients && IsClientInGame(client))
	{
		decl String:text[512];
		VFormat(text, 512, message, 3);
		CGOReplaceColorSay(text, 512); 
		GOPrintToChat(true, client, text); 
	}
}

stock CGOPrintToChatAll(const String:message[], any:...)
{
	decl String:text[512];
	VFormat(text, sizeof(text), message, 2);
	CGOReplaceColorSay(text, sizeof(text));
	GOPrintToChatAll(true, text);
}

stock CGOReplaceColorSay(String:text[], maxlength) for(new i=0; i < ZCOLOR; i++) ReplaceString(text, maxlength, color_t[i], color_c[i]);

stock GOPrintToChat(bool:color, client, const String:message[], any:...)
{
	if(0 < client <= MaxClients && IsClientInGame(client))
	{
		decl String:buf[10][512], String:tex[2048]; 
		VFormat(tex, sizeof(tex), message, 4); 
		ReplaceString(tex, sizeof(tex), "\n", "{}");
		new nuM = ExplodeString(tex, "{}", buf, 10, 512); 
		if(!color) for (new t = 0; t < nuM; t++) PrintToChat(client, buf[t]);
		else for (new t = 0; t < nuM; t++) PrintToChat(client, " %s" ,buf[t]);
	}
}

stock GOPrintToChatAll(bool:color, const String:message[], any:...)
{
	decl String:buf[10][512], String:tex[2048]; 
	VFormat(tex, sizeof(tex), message, 3); 
	ReplaceString(tex, sizeof(tex), "\n", "{}");
	new nuM = ExplodeString(tex, "{}", buf, 10, 512);
	if(!color) for (new t = 0; t < nuM; t++) PrintToChatAll(buf[t]);
	else  for (new t = 0; t < nuM; t++) PrintToChatAll(" %s" ,buf[t]);
}

stock CGOPrintHintText(client, const String:message[], any:...)
{
	if(0 < client <= MaxClients && IsClientInGame(client))
	{
		decl String:text[1024];
		VFormat(text, sizeof(text), message, 3);
		CGOReplaceColorHsay(text, sizeof(text));
		PrintHintText(client, text);
	}
}

stock CGOPrintHintTextToAll(const String:message[], any:...)
{
	decl String:text[1024];
	VFormat(text, sizeof(text), message, 2);
	CGOReplaceColorHsay(text, sizeof(text));
	PrintHintTextToAll(text);
}

stock CGOReplaceColorHsay(String:sText[], maxlength)
{
	ReplaceString(sText, maxlength, "{{", "<font color='");
	ReplaceString(sText, maxlength, "}}", "</font>");
	ReplaceString(sText, maxlength, "==", "'>");
}

И работает ли он с Hint текстом? имеется ввиду инклуд.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,127
Реакции
2,338
Re: [INC] CS:GO Colors (1.1)

pokypka20, ты только одно исправил... Там править немало, если хорошо вдуматься.
Я скинул komashchenko исправленный пример - ещё будет обновка.
Оффтоп
работает ли он с Hint текстом?
Если верить хотя бы этому: CGOPrintHintText, то да.
 

pokypka20

Участник
Сообщения
244
Реакции
30
Re: [INC] CS:GO Colors (1.1)

image.png


Сегодня удивился как далеко уже пошло развитие плагинов.
 

komashchenko

Идиот
Меценат
Сообщения
890
Реакции
2,243
  • Автор ресурса
  • #9
Re: [INC] CS:GO Colors (1.2)

Обновил
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,127
Реакции
2,338
Re: [INC] CS:GO Colors (1.2)

PHP:
stock CGOPrintToChat(client, const String:message[], any:...)
{
	SetGlobalTransTarget(client);
	new a = strlen(message)+190, l;
	decl String:b[a];
	l = ReplaceString(b, VFormat(b, a, message, 3), "\n", "~", false);
	for(new i=0; i < ZCOLOR; i++) ReplaceString(b, a, color_t[i], color_c[i]);
	if(l)
	{
		decl String:s[l+1][192];
		for (new m = ExplodeString(b, "~", s, l, 192), p; p < m; p++) PrintToChat(client, " %s", s[p]);
	}
	else  PrintToChat(client, " %s", b);
}
Полный копипаст формирования \n, что даже придраться не к чему) Разве что ко второму, к: PrintToChatAll(" %s", s[p]); - не лучшее решение.
PHP:
stock GOPrintToChat(client, const String:message[], any:...)
{
	SetGlobalTransTarget(client);
	new a = strlen(message)+190, l;
	decl String:b[a];
	l = ReplaceString(b, VFormat(b, a, message, 3), "\n", "~", false);
	if(l)
	{
		decl String:s[l+1][192];
		for (new m = ExplodeString(b, "~", s, l, 192), p; p < m; p++) PrintToChat(client, s[p]);
	}
	else  PrintToChat(client, b);
}
можно сразу переходить к проверке:
PHP:
stock GOPrintToChat(client, const String:message[], any:...)
{
	new a = strlen(message)+190, l;
	decl String:b[a];
	if((l = ReplaceString(b, VFormat(b, a, message, 3), "\n", "~", false)))
	{
		decl String:s[l+1][192];
		for (new m = ExplodeString(b, "~", s, l, 192), p; p < m; p++) PrintToChat(client, s[p]);
	}
	else  PrintToChat(client, b);
}
SetGlobalTransTarget(client); здесь, в принципе, не нужен - сообщение посылается одному человеку, языковые настройки не меняются и, к тому же, скриптер может сам решать, нужна она в коде или нет (учитывая, что она в его самом начале).
Ещё, я бы сделал так:
PHP:
stock CGOReplaceColorHsay(String:sText[], maxlength)
{
	if (ReplaceString(sText, maxlength, "==", "'>") && ReplaceString(sText, maxlength, "}}", "</font>")) ReplaceString(sText, maxlength, "{{", "<font color='");
}
Ведь если нет одного символа обозначения цвета, то значит не должно быть и всех остальных, ведь так?
 

komashchenko

Идиот
Меценат
Сообщения
890
Реакции
2,243
  • Автор ресурса
  • #11
Re: [INC] CS:GO Colors (1.3)

17.11.2014 - V1.3: Исправление ошибок
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,127
Реакции
2,338
Re: [INC] CS:GO Colors (1.3)

Исправление ошибок
PHP:
VFormat(text, size, message, 2);
	if(ReplaceString(text, size, "{{", "<font color='") && ReplaceString(text, size, "}}", "</font>")) ReplaceString(text, size, "==", "'>");
	PrintHintTextToAll(text);
будет немного лучше
PHP:
if(VFormat(text, size, message, 2) && ReplaceString(text, size, "{{", "<font color='") && ReplaceString(text, size, "}}", "</font>")) ReplaceString(text, size, "==", "'>");
PrintHintTextToAll(text);
и ещё вернее
PHP:
if (VFormat(text, size, message, 2))
{
	if(ReplaceString(text, size, "{{", "<font color='") && ReplaceString(text, size, "}}", "</font>")) ReplaceString(text, size, "==", "'>");
	PrintHintTextToAll(text);
}
Это избавит от всех лишних проверок в случае, если по каким-либо причинам посылается пустое сообщение (например, в файле переводе удалена строка пользователем, чтобы излишне не спамить в чат).
И, заметил, что у тебя другой порядок ReplaceString. А зря! Ведь у тебя получается замена будет больше по длине текста, чем в последующей проверке, если вдруг следующий элемент будет не найден. Но, тебе виднее, что пользователь обязан ставить, а что - нет...
 

rus0707

Участник
Сообщения
286
Реакции
34
Re: [INC] CS:GO Colors (1.3)

если тебе цвета нужны?

вот тебе пример:

"text" "{{#00FF00==СВОЙ ТЕКСТ}} {{#00FFFF==СВОЙ ТЕКСТ}} {{#FF0000==СВОЙ ТЕКСТ}}"

вот тебе все цвета какой хочешь выбирай http://www.stm.dp.ua/web-design/color-html.php
 

T1MOXA

Участник
Сообщения
570
Реакции
74
Re: [INC] CS:GO Colors (1.3)

Кто поможет? Немного неясно)
 

hok

Участник
Сообщения
3
Реакции
0
Re: [INC] CS:GO Colors (1.3)

а где именно прописать надо?
#include <csgo_colors>
?
 
Сверху