- Поддерживаемые игры
-
- CS: Source (OrangeBox)
- CS: Source (v34)
PHP:
#define TEAM_COLOR_GRAY -1
#define TEAM_COLOR_RED -2
#define TEAM_COLOR_BLUE -3
/**
* Как будет работать `{team}` при следующем `CPrintToChat`/`CPrintToChatAll`.
* @param value `TEAM_COLOR_..` или индекс игрока.
* @note По умолчанию отображается цвет в зависимости от команды получателя сообщения.
* @note GRAY/RED/BLUE работает, если в команде SPEC/T/CT есть хотя бы 1 игрок.
* @note Если игрок не найден, используется индекс из `CPrintToChat`.
*/
native void CSetNextTeamColor(int value);
// Использовать в `OnClientPutInServer` или позже.
native bool CIsClientModUser(int client);
native void CPrintToChat(int client, const char[] format, any ...);
native void CPrintToChatAll(const char[] format, any ...);
native void CPrintCenterText(int client, const char[] format, any ...);
native void CPrintCenterTextAll(const char[] format, any ...);
native void CPrintHintText(int client, const char[] format, any ...);
native void CPrintHintTextToAll(const char[] format, any ...);
native void CPrintToConsole(int client, const char[] format, any ...);
native void CPrintToConsoleAll(const char[] format, any ...);
native void CPrintToServer(const char[] format, any ...);
native void CReplyToCommand(int client, const char[] format, any ...);
/**
* Возвращает текст без `cfg/colors_clientmod/colors.txt` цветов.
* @return Кол-во ненулевых байт, записанных в `buffer`.
*/
native int CFormat(char[] buffer, int maxlength, const char[] format, any ...);
/**
* Возвращает текст без `cfg/colors_clientmod/colors.txt` цветов.
* @note Если фраза не переведена, то запишется в `buffer`.
* @note Если забыли передать аргументы в перевод, то вместо них будет 0 0.0 "".
* @note В случае ошибок `КОД ПРОДОЛЖАЕТ ВЫПОЛНЯТЬСЯ`, но в логе нет сообщения об ошибке.
* @note НЕ РАБОТАЕТ: `%!`, `%L`, `%N`, `%E`.
* @return Кол-во ненулевых байт, записанных в `buffer`.
*/
native int CFormatEx(char[] buffer, int maxlength, const char[] format, any ...);
- Быстрее плагин-версий.
- CPrintToChat: css:ob + css:34 ClientMod видят hex, а обычный css:34 вместо hex'ов видит {green} / {lightgreen}.
- ToAll кэшируются (на 1 вызов) по языку игроков - нет лишних переводов/замен цветов.
- CFormatEx умный и ему плевать на какие-либо ошибки - подробнее в .inc
- Настройки hex цветов в cfg/colors_clientmod/colors.txt
- Если сообщение не в чат, то цвета, которые есть в cfg/colors_clientmod/colors.txt - вырезаются.
- Интерфейс colors_clientmod_src.zip/public/IColorsClientMod.h для использования в расширениях.
Пример работы:
PHP:
"Test"
{
"#format" "{1:d},{2:s}"
"en" "{green}d = {1} {team}s = {2}"
}
PrintToServer("'%s' len %d", s, len);
// len = CFormatEx(s, sizeof(s), "%T", "Test", LANG_SERVER, 5, "str");
// len = CFormatEx(s, sizeof(s), "%T", "Test", LANG_SERVER, 5, "str", 2.3, INVALID_HANDLE);
'd = 5 s = str' len 13
// len = CFormatEx(s, sizeof(s), "%T", "Test");
'd = 0 s = ' len 10
// len = CFormatEx(s, sizeof(s), "%T");
// len = CFormatEx(s, sizeof(s), "");
'' len 0
// len = CFormatEx(s, sizeof(s), "abcd %T", "UnknownPhrase", LANG_SERVER);
// len = CFormatEx(s, sizeof(s), "%T %T", "Test", LANG_SERVER, 5, "str", "UnknownPhrase", LANG_SERVER);
'UnknownPhrase' len 13
// len = CFormatEx(s, sizeof(s), "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", 5);
'50000000000000000000000000000000' len 32
- Требования
-
sourcemod 1.11.0+