[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Pawno-Урок]Работа и настройка Audio Plugin v0.4
Дата: 18.05.2011, Среда, 12:06:17 | Сообщение # $NUMBER
Группа: Гл. Модераторы
Сообщений: 220
Репутация: 253+
FFFUUU
Что ж, многие спрашивали здесь на форуме как поставить свою музыку на сервер. В ответ они получали:"Ставьте Audio Plugin". Но вот незадача, а как им пользоваться? Ну что ж, сейчас я всё обьясню.

Достояние этого плагина в том, что он позволяет ставить свою музыку на сервер в форматах WAV, AIFF, MP3/MP2/MP1, OGG, WMA, FLAC, WV, SPX, MPC,AC3, AAC, ALAC, TTA, APE, и OFR, добавление эффектов звучания, 3D-позицию для музыки, воспроизведение внешних музыкальных файлов (то есть из Интернета) и извлечение всех звуковых аудио-файлов из директории самой игры.

Итак, начнем с самого начала. Скачаем данный плагин по ссылке плагин , а также плагин для самой игры по ссылке для игры Без него не будет работать ваша музыка в игре.

После скачки эти файлов, откройте архив со скачанным плагином для игры и установите его. Если у вас стоит Microsoft .NET Framework 3.5 SP1 или выше, то установка пройдет моментально. Если же нет, он будет скачиваться с Интернета. После установки извлекаем все файлы из скачанного нами архива с плагином для сервера (с подтверждением о замене файлов).

После завершения извлечения открываем наш любимый файл server.cfg и прописываем в него данную строку:

Code
plugins audio   

- если у Вас стоит сервер на Windows'e
Code
plugins audio.so

- если у Вас стоит сервер на Linux'e

Теперь сохраняем файл server.cfg для последующих в будущем мучений. Теперь займемся инклудом для Pawno. Здесь всё просто - кидаем файл audio.inc в папку с инклудами, где расположена у Вас программа Pawno.

Теперь займемся Вашим модом. В самом начале, конечно, нужно прописать наш инклуд audio.inc

Code
#include <audio>   

Далее объясняю функции этого инклуда:
Code
Audio_CreateTCPServer(port);   

- Создание аудио-порта, к которому будет подключаться игрок (при условии того, что у него поставлен плагин на клиентскую часть). Порт должен быть таким же, как и порт сервера SA-MP.
Code
Audio_DestroyTCPServer();   

Уничтожение аудио-порта. После этого не будет работать музыка на сервере, придется его перезапускать.
Code
Audio_SetPack(const audiopack[], bool:transferable = true);

Указание пака для выбора музыки плагином. По-стандартому выбран default_pack.
Code
Audio_CreateSequence();   

- создание последовательности воспроизведения файлов.
Code
Audio_DestroySequence(sequenceid);   

- удаление последовательности.
Code
Audio_AddToSequence(sequenceid, audioid);   

- добавить файл в последовательность.
Code
Audio_RemoveFromSequence(sequenceid, audioid);   

- удаление файла из последовательности.
Code
Audio_Play(playerid, audioid, bool:pause = false, bool:loop = false, bool:downmix = false);

- воспроизведение музыкального файла.
Code
Audio_PlaySequence(playerid, sequenceid, bool:pause = false, bool:loop = false, bool:downmix = false);   

- воспроизведение созданной заранее последовательности.
Code
Audio_PlayStreamed(playerid, const url[], bool:pause = false, bool:loop = false, bool:downmix = false);

- воспроизведение музыкального файла из Интернета.
Code
Audio_Pause(playerid, handleid);   

[/b]- пауза для воспроизведенного файла.
Code
Audio_Resume(playerid, handleid);   

- продолжение воспроизведения музыкального файла.
Code
Audio_Stop(playerid, handleid);

- полная остановка воспроизведения муз.файла.
Code
Audio_Restart(playerid, handleid);

- начать воспроизведение заново.
Code
Audio_Seek(playerid, handleid, seconds);   

- перескок на указанную Вами секунду воспроизведения
Code
Audio_SetVolume(playerid, handleid, volume);

- установка громкости.
Code
Audio_Set3DPosition(playerid, handleid, Float:x, Float:y, Float:z, Float:distance);

- воспроизведение муз.файла на определенных координатах. Удаляясь от них музыка будет затихать.
Code
Audio_Set3DOffsets(playerid, handleid, Float:x, Float:y, Float:z);  

- устанавливает смещение для воспроизводимого муз.файла. Но перед этим он должен смикширован или быть в моно.
Code
Audio_SetFX(playerid, handleid, type);   

- установка эффектов для воспроизводимого файла.

Типы:
0 - Эффект хора.
1 - Эффект музыки в малом пространстве.
2 - Эффект искажения музыки.
3 - Эффект эха.
4 - Эффект фленджера.
5 - Эффект звучания в воде.
6 - I3DL2 ревибрация.
7 - Параметрический эквалайзер.
8 - Ревибрация.

Code
Audio_RemoveFX(playerid, handleid, type);   

- удаление эффекта.
Code
Audio_SetEAX(playerid, environment);   

- установка нахождения в каком-либо помещении или пространстве.

Типы:
0 - Обычно.
1 - Звукопоглощающая комната.
2 - Комната.
3 - Ванная.
4 - Жилое помещение.
5 - Каменная комната.
6 - Аудитория.
7 - Концертный зал.
8 - Пещера.
9 - Арена.
10 - Ангар.
11 - Ковровый зал.
12 -Зал.
13 - Каменный коридор.
14 - Аллея.
15 - Лес.
16 - Город.
17 - Горы.
18 - Карьер.
19 - Равнина.
20 -Автостоянка.
21 - Канализация.
22 - Под водой.
23 - Место толкинистов.
24 - Головокружительно.
25 -Псих.воздействие.

Code
Audio_RemoveEAX(playerid);   

- удаление эффекта у игрока.
Проверки:
Code
Audio_IsClientConnected(playerid);

- проверка на соединение аудио-клиента.
Code
Audio_TransferPack(playerid);

- отсылка файлов игроку.
Функции возвращения:
Code
Audio_OnClientConnect(playerid);

- при соединении аудио-клиента.
Code
Audio_OnClientDisconnect(playerid);   

- при отсоединении аудио-клиента.
Code
Audio_OnSetPack(audiopack[]);

- при указании пака со звуками.
Code
Audio_OnTransferFile(playerid, file[], current, total, result);

- при скачивании муз.файлов с папки сервера

Результаты:
0 - Локальный файл успешно скачан.
1 - Удаленный файл успешно скачан.
2 - Архив успешно извлечен.
3 - Файл пропущен, так как скачан до этого.
4 - Файл не может быть загружен.

Code
Audio_OnPlay(playerid, handleid);  

- при воспроизведении муз.файла.
Code
Audio_OnStop(playerid, handleid);

- при остановке муз.файла.
Code
Audio_OnTrackChange(playerid, handleid, track[])

- при изменении ID3Tag'а на онлайн- станции.

Теперь снова займемся модом. В моде ОБЯЗАТЕЛЬНО должны быть присутствовать данные ниже строки:

Code
public    
         OnGameModeInit()    
    {    
         // Указываем серверу,какой пак со звуками он должен будет использовать    
         Audio_SetPack("default_pack", true);    
    }    

    public    
         Audio_OnClientConnect(playerid)    
    {    
         // Разрешаем отсылку файлов при подключении клиентам    
         Audio_TransferPack(playerid);    
    }    

    public    
         Audio_OnSetPack(audiopack[])    
    {    
         for (new i = 0; i < MAX_PLAYERS; i++)    
         {    
             // Отсылаем весь пак звуков подключенным клиентам    
             Audio_TransferPack(i);    
         }    
         return 1;    
    }

Теперь займемся муз.файлами. В папке с сервером есть файл audio.ini. В нем есть строки (или же другие):
Code
[default_pack]    
    1 = song1.aac    
    2 = song2.mp3    
    3 = song3.wma    
    4 = song4.aac    

    [another_pack]    
    1 = song1.mp3    
    2 = song2.mp3    
    3 = song3.mp3    
    4 = song4.mp3   

Все эти строки отвечают за указание идентификатора звука для определенного файла. К примеру:
Code
[default_pack]

1 - Nokia_Tune.aac
Теперь в значении soundid = 1 будет файл Nokia_Tune.aac. Запомните, если вы вписываете муз.файлы после [default_pack] в папке с сервером audiopacks\default_pack должен быть тот файл, который вы прописали.

Теперь пойдет объяснение переменных для функций:

Code
port - порт    
    const audiopack[] - выбор аудио-пака    
    bool:transferable = true - разрешение на скачивание (true или false)    
    sequenceid - идентификатор последовательности    
    audioid - идентификатор муз.файла. Берется из прописанным Вами audio.ini.    
    bool:pause = false - прерывистое воспроизведение    
    bool:loop = false - повторение муз.файла    
    bool:downmix = false - микширование    
    const url[] - прямая ссылка на аудио-файл    
    handleid - идентификатор аудио-потока. Это не soundid, различайте их.    
    seconds - секунды    
    volume - громкость (от 0 до 100)    
    Float:x, Float:y, Float:z, Float:distance - координаты, дистанция прослушивания.    
    type - тип    
    environment - тип окружения

Вот собственно и описание плагина.

Автор данного плагина:Incognito.
Переводчик:SDraw

Дата: 18.05.2011, Среда, 22:52:00 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 667
Репутация: 1425+
Rendy_Orton, Хороший урок, ну многие предпочитают скачать скрипт).
Дата: 15.07.2011, Пятница, 00:20:15 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 2
Репутация: 0+
Code
При копировании статьи указывайте первоисточник.

Вы прямо так и выполняете условия, я посмотрю...
  • Страница 1 из 1
  • 1
Поиск: