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

Тема в разделе "Программирование / Скриптинг", создана пользователем KaRpIkS, 4 апр 2014.

  1. KaRpIkS

    KaRpIkS

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

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

    Искал в плагинах не как не мог найти!
     
  2. ★$$StOk$$★

    ★$$StOk$$★

    Сообщения:
    647
    Симпатии:
    178
    http://hlmod.ru/forum/plaginy-dlya-...a-dlya-chata-igr-na-dvijke-source-2009-a.html
     
  3. KaRpIkS

    KaRpIkS

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

    Добавлено через 9 минут
    Код:
    decl String:Name[64];
            GetClientName(client, Name, sizeof(Name));
    
            PrintToChat("Это ваш ник - %t", Name );
    А как сделать чтобы ник игрока выводил в цвете соответствующей команды за которую он играет!
     
    Последнее редактирование: 4 апр 2014
  4. ★$$StOk$$★

    ★$$StOk$$★

    Сообщения:
    647
    Симпатии:
    178
    Это уже по стандарту есть ....
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    KaRpIkS,
    PHP:
    decl String:sText[100];
    for (new 
    1<= MaxClientsi++)
    {
        if(
    IsClientInGame(i))
        {
            new 
    Handle:hBf StartMessageOne("SayText2"i);

            if (
    hBf != INVALID_HANDLE)
            {
                
    BfWriteByte(hBfi);
                
    BfWriteByte(hBftrue);
                
    FormatEx(sTextsizeof(sText), "\x01Это ваш ник - \x03%N"i);
                
    BfWriteString(hBfsText);
                
    EndMessage();
            }
        }
    }
     
    KaRpIkS нравится это.
  6. KaRpIkS

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    Спасибо, работает но есть некоторые неудобства как вывести это все через файл перевода?
    Раньше было вот так PrintToChatAll("%t", "PlayerName", Name ); а как сейчас вывести это дело я не знаю и да еще если не затруднит можете скинуть ссылочку на документацию по SourceMod, где описаны все переменные и так далие. Зарание спасибо!
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    KaRpIkS,
    PHP:
    decl String:sText[100];
    for (new 
    1<= MaxClientsi++)
    {
        if(
    IsClientInGame(i))
        {
            new 
    Handle:hBf StartMessageOne("SayText2"i);

            if (
    hBf != INVALID_HANDLE)
            {
                
    BfWriteByte(hBfi);
                
    BfWriteByte(hBftrue);
                
    FormatEx(sTextsizeof(sText), "\x01%t \x03%N""PlayerName",i);
                
    BfWriteString(hBfsText);
                
    EndMessage();
            }
        }
    }
    Файл перевода:
    Код:
    "Phrases"
    {
    	"PlayerName"
    	{
    		"ru"	"Это ваш ник -"
    	}
    }
     
  8. KaRpIkS

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    Пытался но плагин отказывался работать!
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    KaRpIkS, в начале перевод подключил ?
     
  10. KaRpIkS

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    Естественно!
     
  11. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    В логи что-то пишет?
     
  12. KaRpIkS

    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)
     
    Последнее редактирование: 4 апр 2014
  13. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    Ну я же тебе написал как должно быть в переводе, а ты по своему сделал)

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

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    СпасибО!
    А я через него и делаю.
    Дак как будет правильно? Что бы можно цвета былдо менять в файле перевода!
    Можешь скинуть ссылочки где можно почитать про это все и про многое другое!
     
  15. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    делай через morecolors.
     
  16. KaRpIkS

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    эТО Я ПОНЯЛ А КАКИМ ОБРАЗО КАК ЭТО ВСЕ ВЫВЕСТИ

    Код:
    CPrintToChatEx
    вОТ ЭТОЙ ФУНКЦИЕЙ ИЛИ КАКОЙ ТО ДРУГОЙ?
     
  17. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    CPrintToChat и CPrintToChatAll


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

    KaRpIkS

    Сообщения:
    14
    Симпатии:
    0
    Код:
            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
      Размер файла:
      21,8 КБ
      Просмотров:
      32
  19. KaRpIkS

    KaRpIkS

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

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    PHP:
    for (new 1<= MaxClientsi++)
    {
        if(
    IsClientInGame(i) && != clientCPrintToChat(i"сообщение");
    }
     
    KaRpIkS нравится это.