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

[INC] CS:GO Colors 1.6

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

komashchenko

Идиот
Сообщения
852
Реакции
1,864
Пользователь komashchenko разместил новый ресурс:

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

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

progammisst

Участник
Сообщения
1
Реакции
0
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,146
Реакции
2,332
[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

Участник
Сообщения
245
Реакции
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,146
Реакции
2,332
Re: [INC] CS:GO Colors (1.1)

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

pokypka20

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



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

AlmazON

Не путать с самим yand3xmail
Сообщения
5,146
Реакции
2,332
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

Идиот
Сообщения
852
Реакции
1,864
Re: [INC] CS:GO Colors (1.3)

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

AlmazON

Не путать с самим yand3xmail
Сообщения
5,146
Реакции
2,332
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

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

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

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

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

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

T1MOXA

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

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

hok

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

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