Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Использование плагина Audio

OKStyle

Эксперт
Как-то при обсуждении возможностей разных мультиплееров (последствием которого стала тема), мне сказали, что в SA-MP я не смогу запустить 4 разных аудиопотока. Действительно, встроенными возможностями можно работать только с одним. Но тут на помощь приходит Audio Plugin от Incognito.

Скачать плагин можно в ресурсах.

Пример использования:

Для клиента:
1) Закидываем папку libraries и плагин audio.asi в директорию с GTA SA. Файлы vorbisFile.dll и vorbisHooked.dll уже будут установлены, если вы ранее использовали SAMPFUNC или CLEO.

Для сервера:
1) В директории сервера создаём папку audiopacks, в ней создаём 2 папки с наборами аудио-файлов: default_pack и other_pack
2) В нужную папку закидываем необходимые звуки. Для упрощения я переименовал аудио-файлы в формат: file1, file2 etc.
3) audio.inc в pawno\include
4) audio.(dll/so) в plugins
5) audio.ini оставляем в корневой директории сервера (там будем указывать имена файлов для паков)
6) Пишем код:

PHP:
#include <audio>
public OnGameModeInit()
{
    Audio_SetPack("default_pack", true, true); // выберем пак для чтения аудио-файлов
    AddStaticVehicle(470, 227.3117, 1913.2104, 17.64, 180.0, 43, 0);
    AddStaticVehicle(470, 226.3958, 1878.1952, 17.64, 180.0, 43, 0);
    AddStaticVehicle(470, 202.2110, 1878.1952, 17.64, 0.0, 43, 0);
    AddStaticVehicle(470, 201.9433, 1913.2104, 17.64, 0.0, 43, 0);
    return 1;
}
public OnGameModeExit()
{
    Audio_DestroyTCPServer(); // удалим аудио-сервер
    return 1;
}
public Audio_OnClientConnect(playerid)
{
    Audio_TransferPack(playerid); // укажем на выбранный пак клиенту при подключении
    return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/giness", true))
    {
        audio_sound[playerid][0] = Audio_Play(playerid, 1, false, false, false); // запустим 4 аудио-потока из окон патриотов на военной базе на расстоянии 10 единиц
        Audio_Set3DPosition(playerid, audio_sound[playerid][0], 227.3117, 1913.2104, 17.64, 10.0);
        audio_sound[playerid][1] = Audio_Play(playerid, 2, false, false, false);
        Audio_Set3DPosition(playerid, audio_sound[playerid][1], 226.3958, 1878.1952, 17.64, 10.0);
        audio_sound[playerid][2] = Audio_Play(playerid, 3, false, false, false);
        Audio_Set3DPosition(playerid, audio_sound[playerid][2], 202.2110, 1878.1952, 17.64, 10.0);
        audio_sound[playerid][3] = Audio_Play(playerid, 4, false, false, false);
        Audio_Set3DPosition(playerid, audio_sound[playerid][3], 201.9433, 1913.2104, 17.64, 10.0);
        return 1;
    }
    if(!strcmp(cmdtext, "/disco", true))
    {
        Audio_Set3DPosition(playerid, audio_sound[playerid][0], 227.3117, 1913.2104, 17.64, 50.0); // увеличим расстояние слышимости потоков до 50 единиц
        Audio_Set3DPosition(playerid, audio_sound[playerid][1], 226.3958, 1878.1952, 17.64, 50.0);
        Audio_Set3DPosition(playerid, audio_sound[playerid][2], 202.2110, 1878.1952, 17.64, 50.0);
        Audio_Set3DPosition(playerid, audio_sound[playerid][3], 201.9433, 1913.2104, 17.64, 50.0);
        return 1;
    }
    if(!strcmp(cmdtext, "/okstyle", true))
    {
        Audio_Remove3DPosition(playerid, audio_sound[playerid][0]); // удалим точки воспроизведения звука и остановим воспроизведение
        Audio_Stop(playerid, audio_sound[playerid][0]);
        Audio_Remove3DPosition(playerid, audio_sound[playerid][1]);
        Audio_Stop(playerid, audio_sound[playerid][1]);
        Audio_Remove3DPosition(playerid, audio_sound[playerid][2]);
        Audio_Stop(playerid, audio_sound[playerid][2]);
        Audio_Remove3DPosition(playerid, audio_sound[playerid][3]);
        Audio_Stop(playerid, audio_sound[playerid][3]);
        return 1;
    }
    return 1;
}
Вот и всё: развеян ещё один миф о превосходстве одного мп над другим.
 
Сверху Снизу