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

Плагин чата для Администратора.


E.V.A

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

  • Администратор
В 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 ...)

 

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 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;
}

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

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

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты


  • Лучшие авторы

    На этой неделе никто репутацию не получал

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

    • GAMADA повысил звание
      Lvl 1
    • Darya повысил звание
      Lvl 14
    • Mad.Eagle повысил звание
      Lvl 5
    • Mad.Eagle повысил звание
      Lvl 4
    • Plamen474 получил значок
      Бета
×
×
  • Создать...