Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

FrwVoiceListening vs set_speak

Статус пользователя Metal Messiah
сообщение 13.12.2019, 22:10
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Приветствую!

Как правило, GAG плагин и различные антифлуды / антиспамы используют set_speak() для того чтобы заткнуть игроку микрофон глобально (его не слышит никто).
При этом /mute обычно реализуются через FrwVoiceListening.

Обнаружил что при одновременном нахождении на сервере плагина, использующего set_speak и плагина /mute через FrwVoiceListening последний не работает. Затыкаешь игрока - его все равно слышно. Порядок плагинов значения не имеет. Есть варианты как это решить без переписывания всех плагинов на FrwVoiceListening() ?


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 14.12.2019, 0:55
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

У модуля Engine своя база, у плагина на mute своя, а должна быть одна. Переписывать нужно gag, да, но не на использование функций Fakemeta, а на использование API от mute.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 14.12.2019, 1:49
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Просто по логике вещей если игрок только что зашел на сервер - он молчит.
Как только он совершил определенное действие для разблокировки чата (например, say /imnotbot) микрофон ему разблокируется в зависимости от sv_alltalk его слышат либо все либо команда. Далее если он оказывается балаболом и админ ему ставит кляп, он снова через set_speak получает молчанку. Эти 2 плагина между собой не конфликтуют. Ситуация когда после gag'а игрока разблокирует антиспам невозможна.

Почему при этом поведение FrwVoiceListening становится непредсказуемым - я пока понять не могу. Объединять все 3 вещи в один плагин под одну общую логику можно, работать это будет, но я не считаю это хорошей идеей.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя esterio
сообщение 14.12.2019, 2:15
Сообщение #4
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

Metal Messiah, все решается подглядыванием в исходники. Конкретно ваш случай тут: https://github.com/alliedmodders/amxmodx/bl...mxxapi.cpp#L145. И как видим модуль engine хукает все тот же SetClientListening и так как он хукает его раньше вашего в плагине, то и суперсидит он раньше соответсвенно. Начните уже наконец то пользоватся нормальным апи. В VTC встроенная блокировка войса.

Отредактировал: esterio, - 14.12.2019, 2:16


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 15.12.2019, 13:02
Сообщение #5
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(esterio @ 14.12.2019, 3:15) *
В VTC встроенная блокировка войса.

Кстати, с ним блокировка через клиент игры работает норм?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Ancer
сообщение 15.12.2019, 18:05
Сообщение #6
Стаж: 6 лет 5 месяцев

Сообщений: 142
Благодарностей: 11
Полезность: < 0

esterio, VTC нужно каждый раз обновлять, а revoice поставил и забыл.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: