/ sampvoice

Английский | Русский

Описание


SAMPVOICE — это комплект разработчика программного обеспечения (SDK) для внедрения систем голосовой связи в язык Pawn для серверов SA: MP.

Поддержка версий


  • Клиент: SA: MP 0.3.7 (R1, R3)
  • Сервер: SA: MP 0.3.7 (R2)

Возможности


  • Управляемая передача голоса
  • Управление микрофоном игрока
  • Привязка голосового потока к игровым объектам
  • И многие другие функции. ..

Установка


Чтобы плагин работал, он должен быть установлен игроками и на сервере. Для этого есть клиентская и серверная часть плагина.

Для игроков


Игрокам доступны 2 варианта установки: автоматическая (через установщик) и вручную (из архива).

Автоматически

  1. Чтобы загрузить установщик, перейдите в Release и выберите желаемую версию плагина.
  2. После загрузки запустите установщик и выберите желаемый язык для вашей установки, после чего установщик автоматически найдет ваша папка GTA San Andreas.
  3. Если каталог правильный, нажмите «ОК» и дождитесь завершения установки. После завершения установки программа установки закроется.
Вручную

  1. Наведите курсор на Release и загрузите архив с нужной версией клиента.
  2. Распакуйте архив в папку GTA San Andreas.

Для разработчиков


  1. Загрузите со страницы Release нужную версию плагина для вашей платформы.
  2. Распакуйте архив в корневой каталог сервера.
  3. Добавьте в файл конфигурации сервера server.cfg строку » плагины sampvoice « для Win32 и » плагины sampvoice.so « для Linux x86 . (Если у вас есть плагин Pawn.RakNet, обязательно поместите SampVoice после него)

Usage


Чтобы начать использовать плагин, прочтите документацию, поставляемую с серверной частью. Для этого откройте файл sampvoice.chm , используя справочник Windows. (Если документация не открывается, щелкните файл документации правой кнопкой мыши, затем выберите Свойства -> Разблокировать -> ОК)

Чтобы начать использовать функциональность плагина, включить файл заголовка:

 #include 

Краткий справочник


Вы должны знать, что плагин использует свой собственный тип и систему констант. Несмотря на то, что это всего лишь оболочка над основными типами Pawn, она помогает ориентироваться в типах самого плагина и не путать указатели.

Чтобы перенаправить аудиотрафик от плеера A к плееру B, вам необходимо создать аудиопоток (например, глобальный, используя SvCreateGStream ), затем присоедините его к потоку игрока A в качестве динамика (используя SvAttachSpeakerToStream ), после чего присоедините к потоку игрока B в качестве слушателя (используя SvAttachListenerToStream ). Выполнено. Теперь, когда микрофон игрока A активирован (например, с помощью функции SvStartRecord ), его аудио трафик будет передаваться, а затем слышен игроком B.

Звук потоки довольно удобны. Их можно визуализировать на примере Discord:

  • Поток — это аналог комнаты (или канала).
  • Спикеры — участники комната с отключенным микрофоном, но с включенным микрофоном.
  • Слушатели — это участники в комнате с отключенным микрофоном, но без звука.

Игроки могут быть как говорящими, так и слушателями в то же время. В этом случае аудиотрафик игрока не будет перенаправляться на него.

Пример


Давайте рассмотрим некоторые возможности плагина с помощью практический пример. Ниже мы создадим сервер, который свяжет всех подключенных игроков к глобальному потоку, а также создаст локальный поток для каждого игрока. Таким образом, игроки смогут общаться через глобальные (одинаково слышимые в любой точке карты) и локальные (слышимые только рядом с игроком) чаты.

 #include  new SV_GSTREAM: gstream = SV_NULL; new SV_LSTREAM: lstream [MAX_PLAYERS] = {SV_NULL, ...};/* Общедоступные OnPlayerActivationKeyPress и OnPlayerActivationKeyRelease необходимы для перенаправления аудиотрафика плеера в соответствующие потоки, когда соответствующие ключи  нажата. */public SV_VOID: OnPlayerActivationKeyPress (SV_UINT: playerid, SV_UINT: keyid) {//Прикрепить игрока к локальному потоку в качестве динамика, если нажата клавиша 'B' if (keyid == 0x42 && lstream [playerid]) SvAttachSpeakerToStream (lstream [  playerid], playerid); //Присоединяем игрока к глобальному потоку в качестве динамика, если нажата клавиша Z if (keyid == 0x5A && gstream) SvAttachSpeakerToStream (gstream, playerid);} public SV_VOID: OnPlayerActivationKeyRelease (SV_UINT: playerid, SV_UINT: keyid)  {//Отключаем проигрыватель от локального потока, если клавиша «B» отпускается if (keyid == 0x42 && lstream [playerid]) SvDetachSpeakerFromStream (lstream [playerid], playerid); //Отключаем проигрыватель от глобального потока, если клавиша Z отпущена if (keyid == 0x5A && gstream) SvDetachSpeakerFromStream (gstream, playerid);} public OnPlayerConnect (playerid) {//Проверяем доступность плагина if (SvGetVersion (  playerid) == SV_NULL) {SendClientMessage (playerid, -1, «Не удалось найти плагин sampvoice.»);  }//Проверка наличия микрофона иначе if (SvHasMicro (playerid) == SV_FALSE) {SendClientMessage (playerid, -1, "Микрофон не найден. ");}//Создаем локальный поток с расстоянием слышимости 40,0, неограниченным количеством слушателей//и именем Local (имя Local будет отображаться красным в списке выступающих игроков) else if (  (lstream [playerid] = SvCreateDLStreamAtPlayer (40.0, SV_INFINITY, playerid, 0xff0000ff, "Local"))) {SendClientMessage (playerid, -1, "Нажмите Z, чтобы поговорить с глобальным чатом, и B, чтобы поговорить с локальным чатом.");//Присоединить проигрыватель к глобальному потоку в качестве слушателя if (gstream) SvAttachListenerToStream (gstream, playerid);//Назначить ключи активации микрофона проигрывателю SvAddKey (playerid, 0x42); SvAddKey (playerid, 0x5A);}} public OnPlayerDisconnect (  playerid, reason) {//Удаление локального потока игрока после отключения if (lstream [playerid]) {SvDeleteStream (lstream [playerid]); lstream [playerid] = SV_NULL;}} public OnGameModeInit () {//Раскомментируйте строку для  включить режим отладки//SvDebug (SV_TRUE); gstream = SvCreateGStream (0xffff0000, "Global");} public OnGameModeExit () {if (gstream) SvDeleteS  tream (gstream);} 

Компиляция


Плагин компилируется для Win32 и Платформы Linux x86 .

Ниже приведены дальнейшие инструкции:

Клонируйте репозиторий на свой компьютер и перейдите в каталог плагина:

 git clone https://github.com/CyberMor/sampvoice.gitcd sampvoice 

Windows (клиент/сервер)


Чтобы скомпилировать клиентскую часть подключаемого модуля, вам понадобится DirectX SDK . По умолчанию клиентская часть скомпилирована для версии SA: MP 0.3.7 (R1) , но вы также можете явно указать компилятору версию для сборки с помощью SAMP_R1 и SAMP_R3 . Чтобы собрать клиентскую и серверную части плагина для платформы Win32 , откройте проект sampvoice.sln в MS Visual Studio 2019 и скомпилируйте его:

Сборка -> Сборка решения (F7)

Linux (сервер)


Чтобы создать серверную часть плагина для платформы Linux x86 , следуйте этим инструкциям:

 cd servermake 

Оцените статью
techsly.ru
Добавить комментарий