Плагин отключения микрофона у всех игроков кроме админа!

StreeT

:)
Сообщения
279
Реакции
54
Ребя всем привет ! Столкнулся с такой проблемой как ужасный порой шум на сервере,хотел спросить у вас, есть ли такой плагин который помог бы мне заглушать всех играющих (не по 1 человеку а всех разом All Mute) людей на сервере кроме админа.
Так как порой играть просто не возможно ! Поиск юзал,быть может плохо..Но старался найти что-то но безуспешно !
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Тесть еще раз!!!!!!!!!!!!!!!!!!!
mute - Отключить
unmute - Включить
Иммунитет у администраторов с флагом ADMFLAG_ROOT
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <basecomm>

public OnPluginStart()
{
	RegAdminCmd("mute", Mute, ADMFLAG_ROOT);
	RegAdminCmd("unmute", Unmute, ADMFLAG_ROOT);
}

public Action:Mute(client, args)
{
	if (client > 0)
	{
		PrintToChat(client, "\x01\x05[SM] \x03Всем отключена возможность голосового общения");
		for (new i = 1; i <= MaxClients; i++)
			if (IsClientInGame(i) && !IsFakeClient(i) && !BaseComm_IsClientMuted(i) && !(GetUserFlagBits(i) & ADMFLAG_ROOT))
				BaseComm_SetClientMute(i, true);
	}
	return Plugin_Handled;
}

public Action:Unmute(client, args)
{
	if (client > 0)
	{
		PrintToChat(client, "\x01\x05[SM] \x03Всем включена возможность голосового общения");
		for (new i = 1; i <= MaxClients; i++)
			if (IsClientInGame(i) && !IsFakeClient(i) && BaseComm_IsClientMuted(i))
				BaseComm_SetClientMute(i, false);
	}
	return Plugin_Handled;
}
 
Последнее редактирование:

StreeT

:)
Сообщения
279
Реакции
54
Плагин работает sm plugins list показывает пишу в консольке игры mute
] mute
Unknown command: mute
Все вообщем разговаривают как разговаривали.. :(

Неа..тоже самое ! Носпасибо за попытку помочь !

Добавлено через 1 час 0 минут
Всё вроде бы пашет но я как фулл админ говорю а меня не слышат остальные,при перезаходе всё сбрасывается у человека походу

Тоже самое,Ставлю мут как админа меня не слышно,перезахожу на сервер меня слышно,у тех кто не перезаходил микрофон так же не работает
 
Последнее редактирование:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Пробуй так:
sm_mute @all ; sm_unmute ник_админа_1 ; sm_unmute ник_админа_2 ; sm_unmute ник_админа_3
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Подобное есть в AdminSentinel, только там принцип что другие вообще ничего не будут слышать и ты будешь говорить админам. В принципе можно подправить там код, чтобы просто все слышали но не могли говорить, а админы и слышали и говорили.

В функции public Action:admin_voice(client, args)
(Там это будет два раза)
PHP:
SetListenOverride(target, client, Listen_No);
заменить на
PHP:
SetClientListeningFlags(client, SPEAK_MUTED);
И еще
PHP:
SetListenOverride(target, client, Listen_Default);
(тоже дважды) заменить на
PHP:
SetClientListeningFlags(client, SPEAK_NORMAL);
Тогда по команде admin_voice 1 все кроме админов будут молчать, а по admin_voice 0 все будет возобновляться. В принципе там еще по хорошему тогда надо кое-что убрать для идеала (PrintToChat убрать и вообще часть ветки if'а где это находится), но для хотфикса вполне сойдет и просто замена
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
KorDen, StreeTT, такая функция есть в плагине AVC.
Настраивается в "Admin Broadcast". Попробуй оттуда что-нибудь выдернуть.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
KorDen, StreeTT, такая функция есть в плагине AVC.
Настраивается в "Admin Broadcast". Попробуй оттуда что-нибудь выдернуть.

Там слишком много ненужного, хотя в принцпе идея сводится к тому же самому
 

StreeT

:)
Сообщения
279
Реакции
54
Подобное есть в AdminSentinel, только там принцип что другие вообще ничего не будут слышать и ты будешь говорить админам. В принципе можно подправить там код, чтобы просто все слышали но не могли говорить, а админы и слышали и говорили.

В функции public Action:admin_voice(client, args)
(Там это будет два раза)
PHP:
SetListenOverride(target, client, Listen_No);
заменить на
PHP:
SetClientListeningFlags(client, SPEAK_MUTED);
И еще
PHP:
SetListenOverride(target, client, Listen_Default);
(тоже дважды) заменить на
PHP:
SetClientListeningFlags(client, SPEAK_NORMAL);
Тогда по команде admin_voice 1 все кроме админов будут молчать, а по admin_voice 0 все будет возобновляться. В принципе там еще по хорошему тогда надо кое-что убрать для идеала (PrintToChat убрать и вообще часть ветки if'а где это находится), но для хотфикса вполне сойдет и просто замена

Видимо ты хорошо соображаешь в этом, :) а я не очень,могу ли я попросить тебя воплотить это в жизнь ? я заменил строчки, получилось вот так
Подскажешь что еще необходимо сделать ?
 

Вложения

  • adminsentinel_rus.sp
    26.1 КБ · Просмотры: 29

Nova

Simple Project
Сообщения
262
Реакции
28
Данный плагин за пару минут пишется, достаточно добавить проверку: является игрок администратором или нет?
Если помощь ещё нужна, то пиши в ЛС.
 

Nova

Simple Project
Сообщения
262
Реакции
28
Ребя всем привет ! Столкнулся с такой проблемой как ужасный порой шум на сервере,хотел спросить у вас, есть ли такой плагин который помог бы мне заглушать всех играющих (не по 1 человеку а всех разом All Mute) людей на сервере кроме админа.
Так как порой играть просто не возможно ! Поиск юзал,быть может плохо..Но старался найти что-то но безуспешно !
Плагин basecomm.smx
sm_muteall - Отключить микрофон всем игрокам, кроме администраторов
sm_gagall - Отключить чат всем игрокам, кроме администраторов
sm_silenceall - Отключить чат и микрофон всем игрокам, кроме администраторов
sm_unmuteall - Включить микрофон всем игрокам
sm_ungagall - Включить чат всем игрокам
sm_unsilenceall - Включить чат и микрофон всем игрокам
// Включить или выключить плагин? [0 = Выключить, 1 = Включить]
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ans_Enabled "1"

// Версия плагина
ans_Version "1.0"

Скачать плагин
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
Зачем вообще писать под это плагин...
Есть же алиас @!me, который выполняем в связке с sm_mute, и получаем всех игроков в муте, кроме админа, который выполнил команду.

И вообще, переставайте пинать трупы.
 
Сверху Снизу