Как сделать сообщения разноцветными.
Код
\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 - серым.