Показать сообщение отдельно
Старый 06.10.2020, 06:52   #42
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 285
KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough
Enforcer
Информация о репутации (KlassenAS)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
KlassenAS / 285
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от 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.
цитата
Поблагодарили: 2
Abradox (06.10.2020), EmptyBowl (07.10.2020)