|
Цитата:
Сообщение от Abradox
это хорошо, но почему .ogg ? Можно сделать чтобы любые аудио-файлы в этой папке воспроизводились .mp3 .wav?
Еще момент, в каждой миссии музыка будет начинаться с первого трека и с начала.
Можно ли выбор трека рандомизировать?
еще надо исключить работу скрипта в главном меню.
|
С ogg как-то само получилось )
Просто такой формат был в исходном скрипте, от которого я отталкивался, и я, в первую очередь, думал над тем, чтобы всё правильно работало, не до форматов было.
Надо глянуть, по-моему для city bars +, когда делал пианисту скрипт с заказом музыки, использовал mp3.
Но, кажется, игра понимала файлы не с любым битрейтом, были нюансы. А ogg в скрипте заиграл без вопросов.
Да, выбор трека можно рандомизировать.
Но учти, что все имена файлов прописываются в скрипте. Поэтому желательно знать, сколько треков будет, и дать им универсальные имена, типа radio01, radio02, radio ga-ga, radio goo-goo
Работа скрипта в главном меню исключена.
За этим следит та часть кода, которую дал GOLOD55
Цитата:
Сообщение от Melhior
Когда-то делалось для СССР мода. Правда не помню рабочий ли это вариант.
Скрипт рассчитан на 4 радиостанции. Но это не точно.
Развернуть для просмотра
Код:
dim_act 3
dim_flt 14
findactor 0,"Tommy"
findactor 1,"NULL"
citymusic_off
let flt[9]=0 // toggle fade1
let flt[10]=0 // toggle fade2
let flt[11]=0 // toggle fade3
let flt[12]=-1 // last radio
let flt[13]=0 //toggle stopped radio
label NotInCar
commandblock 0
//stream_getpos 0,5
//stream_destroy 0
//stream_getpos 1,6
//stream_destroy 1
//stream_getpos 2,7
//stream_destroy 2
//findnearactor 0,2,Car
getactorsdist 0,2,8
freeride_scoreset flt[11]
if flt[8]<5,-1,vol1
if flt[10]=0,-1,subvol1
if flt[9]=0,-1,vol1
stream_fadevol 0,1000,1,0.5
stream_fadevol 1,1000,1,0.5
stream_fadevol 2,1000,1,0.5
let flt[9]=1
goto vol4
label subvol1
stream_fadevol 0,1000,0.25,0.5
stream_fadevol 1,1000,0.25,0.5
stream_fadevol 2,1000,0.25,0.5
let flt[10]=0
goto vol4
label vol1
if flt[8]<15,-1,vol2
if flt[8]>5,-1,vol2
if flt[11]=0,-1,subvol2
if flt[10]=0,-1,vol2
stream_fadevol 0,1000,0.5,0.25
stream_fadevol 1,1000,0.5,0.25
stream_fadevol 2,1000,0.5,0.25
let flt[10]=1
goto vol4
label subvol2
stream_fadevol 0,1000,0,0.25
stream_fadevol 1,1000,0,0.25
stream_fadevol 2,1000,0,0.25
let flt[11]=0
goto vol4
label vol2
if flt[8]<30,-1,vol4
if flt[8]>15,-1,vol4
if flt[11]=0,-1,vol4
stream_fadevol 0,1000,0.25,0.01
stream_fadevol 1,1000,0.25,0.01
stream_fadevol 2,1000,0.25,0.01
let flt[11]=1
goto vol4
label vol4
if flt[8]>50,-1,gb
if flt[13]=0,-1,gb
stream_getpos 0,5
stream_destroy 0
stream_getpos 1,6
stream_destroy 1
stream_getpos 2,7
stream_destroy 2
let flt[13]=1
label gb
if flt[8]<50,-1,gb1
if flt[13]=1,-1,gb1
if flt[12]=0,-1,rad1
stream_create 0,"sounds/MUSIC/opr04KOJ.mp3"
stream_setloop 0, 1000
stream_setpos 0,5
stream_play 0
stream_fadevol 0,1,0.01,0.01
let flt[13]=0
label rad1
if flt[12]=1,-1,rad2
stream_create 1,"sounds/MUSIC/opr04UR3.mp3"
stream_setloop 1, 1000
stream_setpos 1,6
stream_play 1
stream_fadevol 1,1,0.01,0.01
let flt[13]=0
label rad2
if flt[12]=2,-1,gb1
stream_create 2,"sounds/MUSIC/opr04FYZ.mp3"
stream_setloop 2, 1000
stream_setpos 2,7
stream_play 2
stream_fadevol 2,1,0.01,0.01
let flt[13]=0
label gb1
compareownerwithex 0,1,NotInCar,-1
human_getowner 0,2
let flt[9]=0
let flt[10]=0
let flt[11]=0
if flt[12]=-1,-1,manualselect
stream_getpos 0,5
stream_destroy 0
stream_getpos 1,6
stream_destroy 1
stream_getpos 2,7
stream_destroy 2
rnd 4,3
if flt[4]=0,PreMusic1,-1
if flt[4]=1,PreMusic2,-1
if flt[4]=2,PreMusic3,-1
goto NoRadio
label manualselect
if flt[12]=0,Music1,-1
if flt[12]=1,Music2,-1
if flt[12]=2,Music3,-1
label NoRadio
commandblock 0
commandblock 1
let flt[12]=-1
compareownerwithex 0,1,NotInCar,-1
ctrl_read 3,FIRE1
if flt[3]>0,-1,NoRadio
label PreMusic1
console_addtext 99970011
stream_create 0,"sounds/MUSIC/opr04KOJ.mp3"
stream_setloop 0, 1000
stream_setpos 0,5
stream_play 0
let flt[12]=0
commandblock 0
wait 100
label Music1
commandblock 0
commandblock 1
stream_fadevol 0,1,1,1
compareownerwithex 0,1,NotInCar,-1
ctrl_read 3,FIRE1
if flt[3]>0,-1,Music1
stream_getpos 0,5
stream_destroy 0
label PreMusic2
console_addtext 99970012
stream_create 1,"sounds/MUSIC/opr04UR3.mp3"
stream_setloop 1, 1000
stream_setpos 1,6
stream_play 1
let flt[12]=1
commandblock 0
wait 100
label Music2
commandblock 0
commandblock 1
stream_fadevol 1,1,1,1
compareownerwithex 0,1,NotInCar,-1
ctrl_read 3,FIRE1
if flt[3]>0,-1,Music2
stream_getpos 1,6
stream_destroy 1
label PreMusic3
console_addtext 99970013
stream_create 2,"sounds/MUSIC/opr04FYZ.mp3"
stream_setloop 2, 1000
stream_setpos 2,7
stream_play 2
let flt[12]=2
commandblock 0
wait 100
label Music3
commandblock 0
commandblock 1
stream_fadevol 2,1,1,1
compareownerwithex 0,1,NotInCar,-1
ctrl_read 3,FIRE1
if flt[3]>0,-1,Music3
stream_getpos 2,7
stream_destroy 2
console_addtext 99970014
commandblock 0
wait 100
goto NoRadio
[свернуть]
|
О!, Спасибо, вечером я в нём покопаюсь.
Интересно, реализован здесь выбор радиостанции через выбор трека, в одном аудиопотоке, или через несколько параллельных потоков.
По идее, идеально будет сделать несколько параллельных аудиопотоков для радиостанций, с несколькими рандомизированными треками для каждой.
И надо будет выбор радиостанции к клавишам привязать.
Насколько я помню, пять лет назад приходилось довольствоваться только клавишами из тех, что в настройках дополнительного управления.
Сейчас появилось средство считывать в скрипте нажатие любой клавиши, или всё как раньше?
Ещё вопрос, пока я тут занимаюсь скриптописанием, кто-нибудь извлекает записи радио из Дефинитив эдишн?
Когда я буду делать выбор радиостанции и рандомизацию треков, мне желательно знать, сколько этих радиостанций и треков будет, чтобы не переписывать по 100500 раз.
UPD: Глянул, в SityBars+ я использовал вообще wav. B исключительно 22Khz, потому, что 44,1 или 48 KHz игра не воспроизводила. Почему я тогда не использовал mp3 - честно, хз. Но это не критично, с форматами можно и потом поиграться.
Сейчас главное алгоритм отладить, чтоб скрипт работал точно, как швейцарские часы.
UPD2: В скрипте, который дал Melhior, три радиостанции реализованы тремя параллельными аудиопотоками, по одному mp3 на каждый. Переключение осуществляется посредством того, что в одних потоках громкость убирается, в других прибавляется.
Последний раз редактировалось KlassenAS; 06.10.2020 в 14:08.
|