snd_musicvolume
L A R S S O N

Временный бан


Рейтинг: 0


Сообщений: 233


Реакции: 40

Здравствуйте.

Большинство плагинов работающих с аудио файлами, на подобии плагинов raundendsound, quake, c4timer, welcometoserver и т.д, почему то слишком замудрено написаны. Я имею введу регулирование громкости плагина, с помощью меню на цифрах.

  • Огромный, замудрённый код с помощью которого скриптеры воссаздают эти меню, сами настройки и сохранения. Элементарно, это какой балаган в коде происходит, а его количество?
  • Сохранения настроек каждого клиента на сервере. С помощью файловой системы, системы SQL (к этому относятся и так называемые cookie), а так же система сохранения MySQL на веб части...
  • Так же всё это занимает много памяти, простыми словами жрёт ресурсы, занимает место на диске или веб части, в зависимости от способа сохранения настроек клиентов.
  • Не говоря о том что этими настройками не удобно пользоваться!

Я не знаю кто придумал это и реализовал, а за ним начали писать то-же самое остальные скриптеры. Для чего? Функционал? Демонстрация возможностей? Демонстрация ума?

 

Перейду к предложению.

В клиенте есть cvar под названием snd_musicvolume. Это уровень громкости музыки, как показано на скриншоте. Этот cvar и ползунок в меню клиента созданы именно для этого, для чего же ещё? Просто создатели серверов видимо не знают этого, что cvar расчитан на сервера, а не на "бесполезное существование".

Как с этим работать?

Самый простой способ.

  1. Создаём массив типа float с количеством ячеек MAXPLAYERS +1
  2. При входе клиента на сервер нужно получить значение cvar'а snd_musicvolume и записать его в массив типа float, для хранения значения.
  3. Если перехватывать события изменения cvar'а snd_musicvolume на клиенте, то можно оперативно получать и записывать значение с плавующей точкой в массив типа float. т.е быть всегда в курсе с какой громкостью воспроизводить аудио файл для отдельного клиента, даже если клиент изменил настройки во время игры.
  4. Когда нужно воспроизвести аудио файл для клиента, необходимо в параметре громкость, указывать массив типа float, с соответствующей ячейкой индекса игрока.

Вот и всё. Это сильно упростит работу подобных плагинов, а так же упростит настройку для клиента. Сам это я уже написал в голове, но к практике перейти нет повода. Во всяком случае, sourcemod и sourceengine не идеальны, по этому могут возникать вопросы и трудности в реализации, но я почему то уверен что ни каких трудностей в получении cvar'а и перехвате изменения, быть не должно! А вся работа заключается только в получении и перехвате, для того что-б знать и соответствовать настройкам клиента.

Отредактировал: L A R S S O N, 29 августа 2023 г, 02:58
Понравилось: S4DM00ND, RASTAъ, SmOke
RASTAъ

Пользователь


Рейтинг: 5


Сообщений: 242


Реакции: 133

Да, громкость плагинов и её настройку можно не много поправить возможно так как указано выше и/или добавить в !com функцию управления громкостью для всех плагинов это будет удобно. Ещё мне кажется, что для новых игроков не приятно (для меня точно так было) когда громкость всех плагинов по умолчанию 100%, на мой слух лучше было бы процентов ~40 не более, сам я играю с 10%.

Понравилось: L A R S S O N
Авторизация