Перейти к содержанию

Рекомендуемые сообщения

  • Администратор
Опубликовано
В 07.02.2022 в 16:35, Райан сказал:
CPrintToChatAll("%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]);

А попробуй добавить еще один массив подобный, но в нем вместо CPrintToChatAll указать CPrintToChatTeam (Не уверен что сработает, но блин такие строки нашел?

void CPrintToChat(int client, const char[] message, any ...)
void CPrintToChatAll(const char[] message, any ...)
void CPrintToChatEx(int client, int author, const char[] message, any ...)
void CPrintToChatAllEx(int author, const char[] message, any ...)
void CPrintToChatTeam(int team, const char[] message, any ...)
void CPrintToChatTeamEx(int team, int author, const char[] message, any ...)
void CPrintToChatAdmins(int flags, const char[] message, any ...)

 

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Оставляй отзывы,
получай деньги!

Перейти на Otzovik
  • Ответов 20
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
18 минут назад, Райан сказал:

А попробуй добавить еще один массив подобный, но в нем вместо CPrintToChatAll указать CPrintToChatTeam (Не уверен что сработает, но блин такие строки нашел?

void CPrintToChat(int client, const char[] message, any ...)
void CPrintToChatAll(const char[] message, any ...)
void CPrintToChatEx(int client, int author, const char[] message, any ...)
void CPrintToChatAllEx(int author, const char[] message, any ...)
void CPrintToChatTeam(int team, const char[] message, any ...)
void CPrintToChatTeamEx(int team, int author, const char[] message, any ...)
void CPrintToChatAdmins(int flags, const char[] message, any ...)

 

С цветом проблема решена, теперь проблема в том что когда пишешь команде, сообщение идёт в общий чат.

  • Администратор
Опубликовано
2 часа назад, Райан сказал:

но в нем вместо CPrintToChatAll указать CPrintToChatTeam (Не уверен что сработает, но блин такие строки нашел?

Прав был в том, что не уверен. Это не сработало.

А вот так не пойдет? Я просто добавил такой массив:

RegConsoleCmd("say_team", SayTeamHook);

--

public Action:SayTeamHook(client, Args)
{
	new AdminId:AdminID = GetUserAdmin(client);
	if (AdminID == INVALID_ADMIN_ID)
		return Plugin_Continue;
	
	decl String:Name[MAX_NAME_LENGTH];
	decl String:Msg[256];
	GetClientName(client, Name, sizeof(Name));
	GetCmdArgString(Msg, sizeof(Msg));
	Msg[strlen(Msg)-1] = '\0';
	CPrintToChatAll("%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]);
	
	return Plugin_Handled;
} 

Короче все то же самое, но дублируется в Say_team.

admin_chatcolor.smx admin_chatcolor.sp

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Опубликовано
2 часа назад, Райан сказал:

Прав был в том, что не уверен. Это не сработало.

А вот так не пойдет? Я просто добавил такой массив:

RegConsoleCmd("say_team", SayTeamHook);

--

public Action:SayTeamHook(client, Args)
{
	new AdminId:AdminID = GetUserAdmin(client);
	if (AdminID == INVALID_ADMIN_ID)
		return Plugin_Continue;
	
	decl String:Name[MAX_NAME_LENGTH];
	decl String:Msg[256];
	GetClientName(client, Name, sizeof(Name));
	GetCmdArgString(Msg, sizeof(Msg));
	Msg[strlen(Msg)-1] = '\0';
	CPrintToChatAll("%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]);
	
	return Plugin_Handled;
} 

Короче все то же самое, но дублируется в Say_team.

admin_chatcolor.smx 12 \u043a\u0411 · 0 загрузок admin_chatcolor.sp 1 \u043a\u0411 · 0 загрузок

Буду тестировать, я уже несколько раз его по новой писал, устал уже.

 

2 часа назад, Райан сказал:

CPrintToChatTeam

Самое интересное что в цветах этот пункт есть, но почему-то при комплектации плагина выдаёт ошибку error 035: argument type mismatch (argument 1)

  • 2 года спустя...
  • Администратор
Опубликовано

Кажется, мы приближаемся к решению проблемы. Давайте попробуем еще один подход. Я обратил внимание, что при использовании команды say_team сообщение всё равно попадает в общий чат. Возможно, это связано с тем, что плагин не может определить командный чат для отправки сообщения.

Для решения этой проблемы давайте попробуем использовать другой метод. Мы можем напрямую отправлять сообщения в командный чат с помощью функции CPrintToChatTeam, как я уже упоминал ранее. Однако, нам нужно будет правильно определить команду, чтобы сообщение отправлялось именно в командный чат.

Давайте попробуем следующий подход:

public Action:SayTeamHook(client, Args)
{
    new AdminId:AdminID = GetUserAdmin(client);
    if (AdminID == INVALID_ADMIN_ID)
        return Plugin_Continue;
    
    decl String:Name[MAX_NAME_LENGTH];
    decl String:Msg[256];
    GetClientName(client, Name, sizeof(Name));
    GetCmdArgString(Msg, sizeof(Msg));
    Msg[strlen(Msg)-1] = '\0';

    if (GetClientTeam(client) == 2) // Проверяем, находится ли игрок в команде зараженных
    {
        CPrintToChatTeam(2, "%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]); // Отправляем сообщение в командный чат зараженных
    }
    else if (GetClientTeam(client) == 3) // Проверяем, находится ли игрок в команде выживших
    {
        CPrintToChatTeam(3, "%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]); // Отправляем сообщение в командный чат выживших
    }
    else
    {
        CPrintToChatAll("%s{olive}[ADMIN] {green}%s: {olive}%s", Tag, Name, Msg[1]); // Если игрок не в команде, отправляем сообщение в общий чат
    }
    
    return Plugin_Handled;
}

Этот код будет проверять, в какой команде находится игрок, и отправлять сообщение в соответствующий командный чат. Если игрок не находится в команде, то сообщение будет отправлено в общий чат.

Попробуй этот код и дай мне знать, как он работает. Если возникнут какие-либо проблемы, мы можем продолжить искать решение.

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

Оставляй отзывы,
получай деньги!

Перейти на Otzovik


  • Текущие цели пожертвования

    • Пожертвовано 0 ₽ из 30 000 ₽
  • Лучшие авторы

  • Последние достижения

    • Ancor повысил звание
      Веселый Роджер
    • Darya получил значок
      Первые шаги
    • Darya получил значок
      Первые шаги
    • Darya получил значок
      Первые шаги
    • Darya получил значок
      Первые шаги
×
×
  • Создать...