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

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

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

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

Рандомные звуки

, Внутри...
Статус пользователя Fred Perry
сообщение 29.8.2012, 11:16
Сообщение #1


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Всем здарова.

Мне нужно реализовать рандомное воспроизведение звуков.

Чтобы играло не только misc/sound.wav ,а случайно выбирало из:
misc/sound.wav
misc/sound1.wav
misc/sound2.wav
misc/sound3.wav

Вот исходник, кому не тяжело, помогите.

Исходник
Код
#include <amxmodx>

public plugin_init()
{
    register_plugin( "Round Start Sound", "1.0", "modernwarfare" );
    register_logevent("logevent_round_start", 2, "1=Round_Start")  
}

public plugin_precache()
{
    precache_sound("misc/sound.wav")
    return PLUGIN_CONTINUE
}

public logevent_round_start(id)
{
    client_cmd(id,"spk misc/sound")
}


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 29.8.2012, 11:37
Сообщение #2


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Тебе именно рандом надо?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 29.8.2012, 11:38
Сообщение #3
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Можно занести строки со звуками в массив, затем рандомить индекс массива и подставлять получившийся элемент на отправку в консоль игрока.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 29.8.2012, 11:40
Сообщение #4


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(GOOD FELLOW @ 29.8.2012, 12:37) *
Тебе именно рандом надо?

Да.

Ну так, по моим минимальным знаниям и гуглу адо делать так:

Сначала вводим массив:

Код
new g_Sounds[4][] =
{
    "sound",
    "sound1",
    "sound2",
    "sound3"
}


Потом надо сделать plugin_precache() , но я не знаю как его массивом оформить, ну только (мой) вариант по одному звуку добавлять туда
Далее воспроизведение
Код
public logevent_round_start(id)
{
    client_cmd(id,"spk misc/%s", g_Sounds[random_num(0, 3)])
}


Отредактировал: Fred Perry, - 29.8.2012, 11:49


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 29.8.2012, 11:49
Сообщение #5


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Скрытый текст
#include <amxmodx>

public plugin_init()
{
    register_plugin( "Round Start Sound", "1.0", "modernwarfare" );
    register_logevent("logevent_round_start", 2, "1=Round_Start")  
}

public plugin_precache()
{
    precache_sound("misc/sound.wav")
precache_sound("misc/sound1.wav")
precache_sound("misc/sound2.wav")
precache_sound("misc/sound3.wav")
    return PLUGIN_CONTINUE
}

public logevent_round_start(id)
{
PlayRandomSound()
}
stock PlayRandomSound()
{
     enum
     {
          iMassiveSize = 4
     }
 
     new const g_Sounds[iMassiveSize][] =
 
     {
 
          "spk misc/sound.wav",
 
          "spk misc/sound1.wav",
 
          "spk misc/sound2.wav"

"spk misc/sound3.wav"
 
     }
     client_cmd(0, g_Sounds[random(iMassiveSize)])
}


Лови.

Поправил пост, пересмотри:)

Отредактировал: GOOD FELLOW, - 29.8.2012, 11:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 29.8.2012, 11:50
Сообщение #6


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(GOOD FELLOW @ 29.8.2012, 12:49) *
Скрытый текст
#include <amxmodx>

public plugin_init()
{
    register_plugin( "Round Start Sound", "1.0", "modernwarfare" );
    register_logevent("logevent_round_start", 2, "1=Round_Start")  
}

public plugin_precache()
{
    precache_sound("misc/sound.wav")
precache_sound("misc/sound1.wav")
precache_sound("misc/sound2.wav")
precache_sound("misc/sound3.wav")
    return PLUGIN_CONTINUE
}

public logevent_round_start(id)
{
PlayRandomSound()
}
stock PlayRandomSound()
{
     enum
     {
          iMassiveSize = 4
     }
 
     new const g_Sounds[iMassiveSize][] =
 
     {
 
          "spk misc/sound.wav",
 
          "spk misc/sound1.wav",
 
          "spk misc/sound2.wav"

"spk misc/sound3.wav"
 
     }
     client_cmd(0, g_Sounds[random(iMassiveSize)])
}


Лови.

Поправил пост, пересмотри:)

Пока я писал ты уже оформил, спасибо большое.

Всем спасибо кто помогал.


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 29.8.2012, 11:51
Сообщение #7


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Обращайся:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 29.8.2012, 11:54
Сообщение #8


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(GOOD FELLOW @ 29.8.2012, 12:51) *
Обращайся:)

Если я правильно понял, то у тебя выводит всем, а у меня выводит каждому.

Цитата
client_cmd(id,"spk misc/sound")

Цитата
client_cmd(0, g_Sounds[random(iMassiveSize)])


Есть разница?


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 29.8.2012, 11:57
Сообщение #9


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

я не вникал:)
на id поправить, и должно быть каждому


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

Отредактировал: GOOD FELLOW, - 29.8.2012, 11:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
dnoskill
сообщение 29.8.2012, 12:02
Сообщение #10
Стаж: 13 лет

Сообщений: 13
Благодарностей: 8
Полезность: 0

Код
public logevent_round_start(id)
{
    client_cmd(id,"spk misc/%s", g_Sounds[random_num(0, 3)])
}

неверно, и работать не будет

Код
public logevent_round_start()
{
    client_cmd(0,"spk misc/%s", g_Sounds[random_num(0, 3)])
}


кстати забавно. плагин до этого еще и работал что ли?

Отредактировал: dnoskill, - 29.8.2012, 12:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 29.8.2012, 12:02
Сообщение #11


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(GOOD FELLOW @ 29.8.2012, 12:57) *
я не вникал:)
на id поправить, и должно быть каждому


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

Ок, спасибо большое.

Цитата(dnoskill @ 29.8.2012, 13:02) *
Код
public logevent_round_start(id)
{
    client_cmd(id,"spk misc/%s", g_Sounds[random_num(0, 3)])
}

неверно, и работать не будет

Код
public logevent_round_start()
{
    client_cmd(0,"spk misc/%s", g_Sounds[random_num(0, 3)])
}


кстати забавно. плагин до этого еще и работал что ли?

Все работало отлично.

Отредактировал: Fred Perry, - 29.8.2012, 12:32


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: