/** * Как будет работать `{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 для использования в расширениях.
// 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
Для тех, у кого в sm exts list была ошибка "!engine". Теперь указывается полный путь к библиотеке, а не лишь её имя.
Дата: Воскресенье, 19.04.2026, 13:45:26 | Сообщение # 5
Цитатаchilla_mytku ()
Хорошо бы сделать vip чат с поддержкой цветов clientmod
Это всё будет в новом VIP, обновление которого затянулось =\
Некоторые вещи приходится переписывать, т.к. недавно например понял, что в 34 нельзя реализовать меню в расширении: [SM] Extension test.ext.so failed to load: Could not find interface: IMenuManager Это ареновский SM. В итоге пришлось меню разбивать на .smx + .so
Этот Colors With ClientMod Support, Blind DHook, Life State Notifier - результаты того, что пишу модули под новый VIP, которые будут лучше текущих. Чтобы хотя бы было видно, что wS что-то делает.
Это всё будет в новом VIP, обновление которого затянулось =\
Некоторые вещи приходится переписывать, т.к. недавно например понял, что в 34 нельзя реализовать меню в расширении: [SM] Extension test.ext.so failed to load: Could not find interface: IMenuManager Это ареновский SM. В итоге пришлось меню разбивать на .smx + .so
Этот Colors With ClientMod Support, Blind DHook, Life State Notifier - результаты того, что пишу модули под новый VIP, которые будут лучше текущих. Чтобы хотя бы было видно, что wS что-то делает.
Ждем Стас. =) Life State Notifier оценил, так как уже юзаю inc и плагин под свою идею.