[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Цвет сообщений в чате (Часть информации с world-source.ru)
Цвет сообщений в чате
rootДата: Воскресенье, 03.02.2013, 00:45 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Как сделать сообщения разноцветными.

Код
\x01 - default (стандартный оранжевый этот)   
\x03 - lightgreen/red/blue/grey (grey, если игрок в spec)   
\x04 - green (зеленый)   
\x05 - darkgreen (темно-зеленый)


Вот скрипт для теста:

Код
#include <sourcemod>     

public OnPluginStart()   
{   
       HookEvent("player_say", Say);   
}   

public Say(Handle:event, const String:name[], bool:dontBroadcast)   
{   
       new i = GetClientOfUserId(GetEventInt(event, "userid"));   
       decl String:text[5];   
       GetEventString(event, "text", text, sizeof(text));   
       if (StrEqual(text, "1"))   
       {   
          PrintToChatAll("\x01...01");   
          PrintToChatAll("\x03...03");   
          PrintToChatAll("\x04...04");   
          PrintToChatAll("\x05...05");   
          PrintToChatAll("\x05...05\x04...04\x03...03\x01...01");   
       }   
       else if (StrEqual(text, "2"))   
       {   
          new Handle:h = StartMessageAll("SayText2");   
          if (h != INVALID_HANDLE)   
          {   
             BfWriteByte(h, i);   
             BfWriteByte(h, true);   
             BfWriteString(h, "\x03Цветное \x04сообщение");   
             EndMessage();   
          }   
       }   
}


Результат:



Чтобы получить синий, красный, или серый цвет, используйте функцию StartMessageAll("SayText2"); - сообщение для всех, или StartMessageOne("SayText2", client); - для одного игрока. В первой строке BfWriteByte(h, i); - i это индекс игрока. Цвет сообщения зависит от команды, в которой он находится. Если он CT - сообщение будет синим, T - красным, SPEC - серым.
 
rootДата: Воскресенье, 03.02.2013, 00:49 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
как получить такие цвета? 

Код
PrintToChatAll("\x07%06Xтекст", 0xFF0000);

Вместо FF0000 вставляем свой цвет.

4876743.jpg(3.2 Kb)
 
rootДата: Пятница, 01.03.2013, 14:55 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
RGB, RGBA, Hex
Чтобы в чате были различные цвета подключать библиотеку morecolors не обязательно
  
Можно редактировать в исходнике так:
PHP код:
PrintToChatAll("\07%sRed \x0800FF00A0Green \x07%06XBlue",        "FF0000"0x0000FF);

Или проще:
PHP код:
PrintToChatAll("\x071E90FFdodgerblue");

Можно в файле перевода:

Используйте Notepad++
Пример файла перевода во вложениях
Горячие клавиши:


 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Цвет сообщений в чате (Часть информации с world-source.ru)
  • Страница 1 из 1
  • 1
Поиск: