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

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

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

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

Случайная музыка в бесконечном раунде

[РЕШЕНО]
Статус пользователя $@NyA
сообщение 26.2.2018, 19:50
Сообщение #1


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

Стаж: 16 лет

Сообщений: 984
Благодарностей: 526
Полезность: 1038

Подскажите,можно ли сделать так,что-бы на протяжении всей игры ( имееться бесконечный раунд ) играла выборочная музыка.Что-бы после каждой композиции,играла следующая ( если можно несколько поставить )

Пример:

Код
public ambience_sound()
{
client_cmd(0, "mp3 play sound/jurassic_park/start_fight.mp3")
set_task(260.0, "ambience_sound")
}

new g_beacon_sound[] = "jurassic_park/beacon.wav"

precache_sound("jurassic_park/beacon.wav")


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя massimo
сообщение 26.2.2018, 20:19
Сообщение #2


Стаж: 8 лет 9 месяцев
Город: Днепропетровск


Сообщений: 883
Благодарности: выкл.

sentry_sound
$@NyA,
Код
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
    #include <colorchat>
    
    #define print_team_default DontChange
    #define print_team_grey Grey
    #define print_team_red Red
    #define print_team_blue Blue        
#endif

#define MAX_SOUNDS 35
#define FREQ_MUSIC 300.0

new const g_sSounds[MAX_SOUNDS][] =
{
   "csdm/music/1.mp3",
   "csdm/music/2.mp3",
   "csdm/music/3.mp3",
   "csdm/music/4.mp3",
   "csdm/music/5.mp3",
   "csdm/music/6.mp3",
   "csdm/music/7.mp3",
   "csdm/music/8.mp3",
   "csdm/music/9.mp3",
   "csdm/music/10.mp3",
   "csdm/music/11.mp3",
   "csdm/music/12.mp3",
   "csdm/music/13.mp3",
   "csdm/music/14.mp3",
   "csdm/music/15.mp3",
   "csdm/music/16.mp3",
   "csdm/music/17.mp3",
   "csdm/music/18.mp3",
   "csdm/music/19.mp3",
   "csdm/music/20.mp3",
   "csdm/music/21.mp3",
   "csdm/music/22.mp3",
   "csdm/music/23.mp3",
   "csdm/music/24.mp3",
   "csdm/music/25.mp3",
   "csdm/music/26.mp3",
   "csdm/music/27.mp3",
   "csdm/music/28.mp3",
   "csdm/music/29.mp3",
   "csdm/music/30.mp3",
   "csdm/music/31.mp3",
   "csdm/music/32.mp3",
   "csdm/music/33.mp3",
   "csdm/music/34.mp3",
   "csdm/music/35.mp3"
  
}

new bool:g_EnSound[33]

public plugin_init ()
{
    register_plugin ( "Sentry Music", "1.0", "QooQa" )

    register_clcmd("say /sound", "casesound")
    
    set_task ( FREQ_MUSIC, "PlayMusic", .flags = "b" )
}

public plugin_precache ()
{
   for ( new i; i < sizeof g_sSounds; i++ )
      precache_sound ( g_sSounds[i] )
}

public client_connect(id)
    g_EnSound[id] = true
    
public casesound ( id )
{
    g_EnSound[id] = !g_EnSound[id]
    
    if ( !g_EnSound[id] )
        client_cmd(id, "mp3 stop")
    
    client_print_color( id, print_team_default, "^3[^4Информация^3]^1 Музыка ^4%s", g_EnSound[id] ? "Включена" : "Отключена" )    
}
    
public PlayMusic ()
{
    static iPlaylist[MAX_SOUNDS], iCurMusic = -1

    if ( iCurMusic == -1 || iCurMusic == MAX_SOUNDS )
    {
        new iLastMusic = -1
        if ( iCurMusic > 0 )
            iLastMusic = iPlaylist[iCurMusic - 1]

        new iTempValues[MAX_SOUNDS]
        for ( new i; i < MAX_SOUNDS; i++ )
            iTempValues[i] = i

        for ( new i, r, d, iNum, iMax = MAX_SOUNDS; i < MAX_SOUNDS; i++ )
        {
            iPlaylist[i] = iTempValues[r = random_num ( 0, iMax - 1 )]
            iNum = iMax
            for ( d = 0, iMax = 0; d < iNum; d++ )
            {
                if ( iTempValues[d] == iTempValues[r] ) // d == r
                   continue

                iTempValues[iMax++] = iTempValues[d]
            }
        }

        if ( iPlaylist[0] == iLastMusic )
        {
            new iPos = random_num ( 1, MAX_SOUNDS - 1 )
            iPlaylist[0] = iPlaylist[iPos]
            iPlaylist[iPos] = iLastMusic
        }
        iCurMusic = 0
    }
    
    iCurMusic++
    
    new players[32], num
    
    get_players(players, num, "ch")
    
    for(--num; num>=0; num--)
    {
        if(g_EnSound[players[num]])
            PlaySound ( players[num], g_sSounds[iPlaylist[iCurMusic]] )  
    }
}

stock PlaySound ( id, const sound[] )
{
   if ( strcmp ( sound[strlen ( sound ) - 4], ".mp3" ) == 0 )
      client_cmd ( id, "mp3 play ^"sound/%s^"", sound )
   else
      client_cmd ( id, "spk ^"%s^"", sound )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 26.2.2018, 22:05
Сообщение #3


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

Стаж: 16 лет

Сообщений: 984
Благодарностей: 526
Полезность: 1038

massimo,
Зделал у себя так ( с твоим были ошибки при компиляции - то ненужное убрал).В папке музыка лежит и всёравно в игре неиграет
Sound
Код
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
    
    #define print_team_default DontChange
    #define print_team_grey Grey
    #define print_team_red Red
    #define print_team_blue Blue        
#endif

#define MAX_SOUNDS 3
#define FREQ_MUSIC 300.0

new const g_sSounds[MAX_SOUNDS][] =
{
   "jurassic_park/jurassic_park_music_1.mp3",
   "jurassic_park/jurassic_park_music_2.mp3",
   "jurassic_park/jurassic_park_music_3.mp3"
  
}

new bool:g_EnSound[33]

public plugin_init ()
{
    register_plugin ( "Sentry Music", "1.0", "QooQa" )

    register_clcmd("say /sound", "casesound")
    
    set_task ( FREQ_MUSIC, "PlayMusic", .flags = "b" )
}

public plugin_precache ()
{
   for ( new i; i < sizeof g_sSounds; i++ )
      precache_sound ( g_sSounds[i] )
}

public client_connect(id)
    g_EnSound[id] = true
    
public casesound ( id )
{
    g_EnSound[id] = !g_EnSound[id]
    
    if ( !g_EnSound[id] )
        client_cmd(id, "mp3 stop")
          
}
    
public PlayMusic ()
{
    static iPlaylist[MAX_SOUNDS], iCurMusic = -1

    if ( iCurMusic == -1 || iCurMusic == MAX_SOUNDS )
    {
        new iLastMusic = -1
        if ( iCurMusic > 0 )
            iLastMusic = iPlaylist[iCurMusic - 1]

        new iTempValues[MAX_SOUNDS]
        for ( new i; i < MAX_SOUNDS; i++ )
            iTempValues[i] = i

        for ( new i, r, d, iNum, iMax = MAX_SOUNDS; i < MAX_SOUNDS; i++ )
        {
            iPlaylist[i] = iTempValues[r = random_num ( 0, iMax - 1 )]
            iNum = iMax
            for ( d = 0, iMax = 0; d < iNum; d++ )
            {
                if ( iTempValues[d] == iTempValues[r] ) // d == r
                   continue

                iTempValues[iMax++] = iTempValues[d]
            }
        }

        if ( iPlaylist[0] == iLastMusic )
        {
            new iPos = random_num ( 1, MAX_SOUNDS - 1 )
            iPlaylist[0] = iPlaylist[iPos]
            iPlaylist[iPos] = iLastMusic
        }
        iCurMusic = 0
    }
    
    iCurMusic++
    
    new players[32], num
    
    get_players(players, num, "ch")
    
    for(--num; num>=0; num--)
    {
        if(g_EnSound[players[num]])
            PlaySound ( players[num], g_sSounds[iPlaylist[iCurMusic]] )  
    }
}

stock PlaySound ( id, const sound[] )
{
   if ( strcmp ( sound[strlen ( sound ) - 4], ".mp3" ) == 0 )
      client_cmd ( id, "mp3 play ^"sound/%s^"", sound )
   else
      client_cmd ( id, "spk ^"%s^"", sound )
}


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 26.2.2018, 23:36
Сообщение #4


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

$@NyA,
А звуки то сами качаются при этом на клиент игры?
Возможно :
Убавлен звук mp3 в клиенте
Сконвертирован с неправильной дискратизацией


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 27.2.2018, 2:12
Сообщение #5


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

Стаж: 16 лет

Сообщений: 984
Благодарностей: 526
Полезность: 1038

energydance,
Всё качаеться
Звук поставлен на максимум
А для mp3 ненужно конвертировать.Ето для .wav нужно делать моно режим ( насколько помниться )


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 27.2.2018, 2:17
Сообщение #6


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

$@NyA, кс тоже не все mp3 конвертеры принимает)


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 27.2.2018, 17:52
Сообщение #7


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

Стаж: 16 лет

Сообщений: 984
Благодарностей: 526
Полезность: 1038

energydance,

Та и ладно с етим.Передумал и поставил амбиент звуки леса совместно из природой.Тоже для атмосферности неплохой результат получился.Будем считать,что тема Решена smile.gif

Отредактировал: $@NyA, - 27.2.2018, 17:53


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: