Раскрасить ники играков по командом

KaRpIkS

Участник
Сообщения
14
Реакции
0
Здравствуйте, я только в новь начал заниматься серверами и тут возник такой вопрос как вывести в чат ник игрока с цветом.

Ну например если игрок играет за террористов то при выводи сообщения в чат плагинам ник игрока будет окрашен в соответствующий цвет команды!

Искал в плагинах не как не мог найти!
 

★$$StOk$$★

Участник
Сообщения
629
Реакции
187
Здравствуйте, я только в новь начал заниматься серверами и тут возник такой вопрос как вывести в чат ник игрока с цветом.

Ну например если игрок играет за террористов то при выводи сообщения в чат плагинам ник игрока будет окрашен в соответствующий цвет команды!

Искал в плагинах не как не мог найти!
http://hlmod.ru/forum/plaginy-dlya-...a-dlya-chata-igr-na-dvijke-source-2009-a.html
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
Спасибо но не то мне нужен кусок кода или статью как это сделать в плагене, а не сам плагин.

Добавлено через 9 минут
C-подобный:
decl String:Name[64];
        GetClientName(client, Name, sizeof(Name));

        PrintToChat("Это ваш ник - %t", Name );
А как сделать чтобы ник игрока выводил в цвете соответствующей команды за которую он играет!
 
Последнее редактирование:

★$$StOk$$★

Участник
Сообщения
629
Реакции
187
Спасибо но не то мне нужен кусок кода или статью как это сделать в плагене, а не сам плагин.

Добавлено через 9 минут
C-подобный:
decl String:Name[64];
        GetClientName(client, Name, sizeof(Name));

        PrintToChat("Это ваш ник - %t", Name );
А как сделать чтобы ник игрока выводил в цвете соответствующей команды за которую он играет!
Это уже по стандарту есть ....
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #5
KaRpIkS,
PHP:
decl String:sText[100];
for (new i = 1; i <= MaxClients; i++)
{
	if(IsClientInGame(i))
	{
		new Handle:hBf = StartMessageOne("SayText2", i);

		if (hBf != INVALID_HANDLE)
		{
			BfWriteByte(hBf, i);
			BfWriteByte(hBf, true);
			FormatEx(sText, sizeof(sText), "\x01Это ваш ник - \x03%N", i);
			BfWriteString(hBf, sText);
			EndMessage();
		}
	}
}
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
KaRpIkS,
PHP:
decl String:sText[100];
for (new i = 1; i <= MaxClients; i++)
{
    if(IsClientInGame(i))
    {
        new Handle:hBf = StartMessageOne("SayText2", i);

        if (hBf != INVALID_HANDLE)
        {
            BfWriteByte(hBf, i);
            BfWriteByte(hBf, true);
            FormatEx(sText, sizeof(sText), "\x01Это ваш ник - \x03%N", i);
            BfWriteString(hBf, sText);
            EndMessage();
        }
    }
}
Спасибо, работает но есть некоторые неудобства как вывести это все через файл перевода?
Раньше было вот так PrintToChatAll("%t", "PlayerName", Name ); а как сейчас вывести это дело я не знаю и да еще если не затруднит можете скинуть ссылочку на документацию по SourceMod, где описаны все переменные и так далие. Зарание спасибо!
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
KaRpIkS,
PHP:
decl String:sText[100];
for (new i = 1; i <= MaxClients; i++)
{
	if(IsClientInGame(i))
	{
		new Handle:hBf = StartMessageOne("SayText2", i);

		if (hBf != INVALID_HANDLE)
		{
			BfWriteByte(hBf, i);
			BfWriteByte(hBf, true);
			FormatEx(sText, sizeof(sText), "\x01%t \x03%N", "PlayerName",i);
			BfWriteString(hBf, sText);
			EndMessage();
		}
	}
}

Файл перевода:
C-подобный:
"Phrases"
{
	"PlayerName"
	{
		"ru"	"Это ваш ник -"
	}
}
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
Пытался но плагин отказывался работать!
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #9
KaRpIkS, в начале перевод подключил ?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #11
В логи что-то пишет?
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
В коде
FormatEx(sText, sizeof(sText), "\x01%t \x03%N", "PlayerName",i);

в файле перевода

"PlayerName"
{
"#format" "{1:s}"
"ru" "{green}[SM] {lightgreen}Это ваш ник - {1} "
}

Добавлено через 45 секунд
L 04/04/2014 - 23:16:35: [SM] Plugin encountered error 4: Invalid parameter or parameter type
L 04/04/2014 - 23:16:35: [SM] Native "FormatEx" reported: String formatted incorrectly - parameter 6 (total 5)
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #13
Ну я же тебе написал как должно быть в переводе, а ты по своему сделал)

Если ты хочешь делать по своему - делай через morecolors.
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
Ну я же тебе написал как должно быть в переводе, а ты по своему сделал)

Если ты хочешь делать по своему - делай через morecolors.
СпасибО!
А я через него и делаю.
Дак как будет правильно? Что бы можно цвета былдо менять в файле перевода!
Можешь скинуть ссылочки где можно почитать про это все и про многое другое!
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #15
делай через morecolors.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #17
CPrintToChat и CPrintToChatAll


В самом начале:
#include<morecolors>
 

KaRpIkS

Участник
Сообщения
14
Реакции
0
C-подобный:
        decl String:sText[100];
        for (new i = 1; i <= MaxClients; i++)
        {
            if(IsClientInGame(i))
            {
                new Handle:hBf = StartMessageOne("SayText2", i);

                if (hBf != INVALID_HANDLE)
                {
                    BfWriteByte(hBf, i);
                    BfWriteByte(hBf, true);
                    //FormatEx(sText, sizeof(sText), "\x01%t \x03%N", "PlayerName",i);
                    CPrintToChatAll("\x01%t \x03%N", "PlayerName", sText );
                    BfWriteString(hBf, sText);
                    EndMessage();
                }
            }
        }
пытался так но мне выдало ошибку!
 

Вложения

  • Image 1.jpg
    Image 1.jpg
    19.3 КБ · Просмотры: 35

KaRpIkS

Участник
Сообщения
14
Реакции
0
Все спасибо, разобрался, есть такой вопрос Как сделать так чтобы сообщение отправлялось всем кроме того кто это написал?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #20
PHP:
for (new i = 1; i <= MaxClients; i++)
{
	if(IsClientInGame(i) && i != client) CPrintToChat(i, "сообщение");
}
 
Сверху Снизу