Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Скриптинг (https://mafia-game.ru/forum/forumdisplay.php?f=10)
-   -   Скрипт автомобильного радио (https://mafia-game.ru/forum/showthread.php?t=1047)

Firefox3860 09.10.2020 15:38

Выследить намерение игрока вряд ли можно, но есть точный способ определить, была ли игра загружена из сохранения или из меню.

KlassenAS 09.10.2020 15:44

Цитата:

Сообщение от Firefox3860 (Сообщение 12369)
Выследить намерение игрока вряд ли можно, но есть точный способ определить, была ли игра загружена из сохранения или из меню.

Что за способ?
Хотя, если честно, не уверен, что это поможет.
Ведь игра уже загрузилась. А с ней загрузились и ненужные аудиопотоки.

Ещё мысль появилась.
А что там со стэком? Он работает, кажется, независимо от сохранения?
Что, если в него сохранять идентификаторы потоков, а при загрузке из сохранения считывать их и дестроить их потоки?

Firefox3860 09.10.2020 16:00

Цитата:

Сообщение от KlassenAS (Сообщение 12370)
Что за способ?

Вот он - https://mafia-game.ru/forum/showpost...&postcount=143
Он немного костыльный, используется у меня в моде для загрузки chg-файлов и других начальных присвоений. Но вряд ли тут, конечно, поможет.

Цитата:

Сообщение от KlassenAS (Сообщение 12370)
А что там со стэком? Он работает, кажется, независимо от сохранения? Что, если в него сохранять идентификаторы потоков, а при загрузке из сохранения считывать их и дестроить их потоки?

Прямой доступ к оперативной памяти? Не знаю, можно ли такое сделать в скрипте.

KlassenAS 09.10.2020 16:08

Цитата:

Сообщение от Firefox3860 (Сообщение 12371)
Прямой доступ к оперативной памяти? Не знаю, можно ли такое сделать в скрипте.

Может, у движка есть собственное подобие стэка?

Развернуть для просмотра

floatreg_pop xx \\ есть в mise19mesto

найти последнее значение в стеке и записать его в переменную xx. Если стек пустой то команда вообще не сработает(даже не перепишет флт xx нулем).

xx - назначаемая переменная



floatreg_push xx \\ есть в mise19mesto\banka

закинуть значение переменной xx в стек(перед загрузкой другой карты, например). в стек можно скидывать много флт. считывание стека floatreg_pop-ом
происходит в обратном порядке. считанное из стека значение укорачивает его(причем даже нуля не остается(?))

xx - переменная, значение которой запоминаем
[свернуть]

Firefox3860 09.10.2020 16:44

Цитата:

Сообщение от KlassenAS (Сообщение 12373)
Может, у движка есть собственное подобие стэка?

А, тут даже специальные команды есть. Это точно стоит попробовать.
Ну и всё равно же этот стэк будет в оперативной памяти находиться.

KlassenAS 09.10.2020 17:26

Цитата:

Сообщение от Firefox3860 (Сообщение 12377)
А, тут даже специальные команды есть. Это точно стоит попробовать.
Ну и всё равно же этот стэк будет в оперативной памяти находиться.

Попробовал. Не помогло.
Кажется, я начинаю понимать, почему.
Похоже, что, когда загружается сохранение, и игра воссоздаёт сохранённые потоки, они получают новые идентификаторы.
ESC включает их воспроизведение рандомно.
А при следующем сохранении у нас сохраняются и те потоки, которые с прошлого сохранения остались, и к ним ещё новые добавляются.
Можно было бы дестроить потоки перед каждым сохранением.
Но для этого нужно лезть в скрипты в сценах, отвечающие за сохранение.
Перелопатить сохранения всех сцен ради одного скрипта - не рационально, мягко говоря.
Или хакнуть движок, чтобы созданные в скриптах аудиопотоки не сохранялись.
Это мне кажется более действенным, но нереальным.

А так-то я этот скрипт отладил - работает отлично. До первого сохранения.
А потом игра всю малину портит.

Ещё одно наблюдение: когда я делал скрипт, в котором одной радиостанции соответствовал только один аудиофайл, этой ошибки не было. По крайней мере, не помню, чтобы была.
Может быть, в игре не может существовать двух потоков, сделанных из одного файла? Надо проверить.

UPD: Тоже не прокатило...

Вот в таком виде сейчас существует этот скрипт.
Больше половины скрипта составляет алгоритм рандомизации треков.
Кому не лень состалять плейлист из 40 песен - можете протестировать )

Развернуть для просмотра

Код:

//Radio Script Ver. 2 10-10-2020 By KlassenAS

Dim_Act 1
Dim_Flt 19
GetActivePlayer 0
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on

Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //поток 03 
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье/Время с начала игры/текущее время потока/
Let Flt[8]=0 //Прошлое время с начала игры
Let Flt[9]=0 //номер радиостанции 0-3
Let Flt[10]=-1 //рандом для radio/разница во времени игры
Let Flt[11]=-1 //чтоб на radio00 не повторялись дважды
Let Flt[12]=-1 //чтоб на radio01 не повторялись дважды
Let Flt[13]=-1 //чтоб на radio02 не повторялись дважды
Let Flt[14]=-1 //чтоб на radio03 не повторялись дважды
Let Flt[15]=-1 //прошлое время потока 0
Let Flt[16]=-1 //прошлое время потока 1
Let Flt[17]=-1 //прошлое время потока 2
Let Flt[18]=-1 //прошлое время потока 3

//Это, чтобы сразу сохранение протестровать во фрирайде
FreeRide_ScoreAdd 2000

CommandBlock 1
Label RADIO00CREATE
Rnd 10,10
If Flt[11]=Flt[10],RADIO00CREATE,-1
Let Flt[11]=Flt[10]

        Label TRCK0000
        If Flt[10]=0,-1,TRCK0001
        Stream_Create 0,"radio\radio 00 - 00.mp3"
        GoTo RADIO00CREATED

        Label TRCK0001
        If Flt[10]=1,-1,TRCK0002
        Stream_Create 0,"radio\radio 00 - 01.mp3"
        GoTo RADIO00CREATED
       
        Label TRCK0002
        If Flt[10]=2,-1,TRCK0003
        Stream_Create 0,"radio\radio 00 - 02.mp3"
        GoTo RADIO00CREATED       
       
        Label TRCK0003
        If Flt[10]=3,-1,TRCK0004
        Stream_Create 0,"radio\radio 00 - 03.mp3"
        GoTo RADIO00CREATED       

        Label TRCK0004
        If Flt[10]=4,-1,TRCK0005
        Stream_Create 0,"radio\radio 00 - 04.mp3"
        GoTo RADIO00CREATED

        Label TRCK0005
        If Flt[10]=5,-1,TRCK0006
        Stream_Create 0,"radio\radio 00 - 05.mp3"
        GoTo RADIO00CREATED

        Label TRCK0006
        If Flt[10]=6,-1,TRCK0007
        Stream_Create 0,"radio\radio 00 - 06.mp3"
        GoTo RADIO00CREATED

        Label TRCK0007
        If Flt[10]=7,-1,TRCK0008
        Stream_Create 0,"radio\radio 00 - 07.mp3"
        GoTo RADIO00CREATED

        Label TRCK0008
        If Flt[10]=8,-1,TRCK0009
        Stream_Create 0,"radio\radio 00 - 08.mp3"
        GoTo RADIO00CREATED
       
        Label TRCK0009
        If Flt[10]=9,-1,RADIO00CREATED
        Stream_Create 0,"radio\radio 00 - 09.mp3"
        GoTo RADIO00CREATED

Label RADIO00CREATED
Stream_Fadevol 0,1,0,0
Stream_Play 0
If Flt[15]>0,REPLAY0,-1



Label RADIO01CREATE
Rnd 10,10
If Flt[12]=Flt[10],RADIO01CREATE,-1
Let Flt[12]=Flt[10]

        Label TRCK0100
        If Flt[10]=0,-1,TRCK0101
        Stream_Create 1,"radio\radio 01 - 00.mp3"
        GoTo RADIO01CREATED

        Label TRCK0101
        If Flt[10]=1,-1,TRCK0102
        Stream_Create 1,"radio\radio 01 - 01.mp3"
        GoTo RADIO01CREATED
       
        Label TRCK0102
        If Flt[10]=2,-1,TRCK0103
        Stream_Create 1,"radio\radio 01 - 02.mp3"
        GoTo RADIO01CREATED       
       
        Label TRCK0103
        If Flt[10]=3,-1,TRCK0104
        Stream_Create 1,"radio\radio 01 - 03.mp3"
        GoTo RADIO01CREATED       

        Label TRCK0104
        If Flt[10]=4,-1,TRCK0105
        Stream_Create 1,"radio\radio 01 - 04.mp3"
        GoTo RADIO01CREATED

        Label TRCK0105
        If Flt[10]=5,-1,TRCK0106
        Stream_Create 1,"radio\radio 01 - 05.mp3"
        GoTo RADIO01CREATED

        Label TRCK0106
        If Flt[10]=6,-1,TRCK0107
        Stream_Create 1,"radio\radio 01 - 06.mp3"
        GoTo RADIO01CREATED

        Label TRCK0107
        If Flt[10]=7,-1,TRCK0108
        Stream_Create 1,"radio\radio 01 - 07.mp3"
        GoTo RADIO01CREATED

        Label TRCK0108
        If Flt[10]=8,-1,TRCK0109
        Stream_Create 1,"radio\radio 01 - 08.mp3"
        GoTo RADIO01CREATED
       
        Label TRCK0109
        If Flt[10]=9,-1,RADIO01CREATED
        Stream_Create 1,"radio\radio 01 - 09.mp3"
        GoTo RADIO01CREATED

Label RADIO01CREATED
Stream_Fadevol 1,1,0,0
Stream_Play 1
If Flt[16]>0,REPLAY1,-1



Label RADIO02CREATE
Rnd 10,10
If Flt[13]=Flt[10],RADIO02CREATE,-1
Let Flt[13]=Flt[10]

        Label TRCK0200
        If Flt[10]=0,-1,TRCK0201
        Stream_Create 2,"radio\radio 02 - 00.mp3"
        GoTo RADIO02CREATED

        Label TRCK0201
        If Flt[10]=1,-1,TRCK0202
        Stream_Create 2,"radio\radio 02 - 01.mp3"
        GoTo RADIO02CREATED
       
        Label TRCK0202
        If Flt[10]=2,-1,TRCK0203
        Stream_Create 2,"radio\radio 02 - 02.mp3"
        GoTo RADIO02CREATED       
       
        Label TRCK0203
        If Flt[10]=3,-1,TRCK0204
        Stream_Create 2,"radio\radio 02 - 03.mp3"
        GoTo RADIO02CREATED       

        Label TRCK0204
        If Flt[10]=4,-1,TRCK0205
        Stream_Create 2,"radio\radio 02 - 04.mp3"
        GoTo RADIO02CREATED

        Label TRCK0205
        If Flt[10]=5,-1,TRCK0206
        Stream_Create 2,"radio\radio 02 - 05.mp3"
        GoTo RADIO02CREATED

        Label TRCK0206
        If Flt[10]=6,-1,TRCK0207
        Stream_Create 2,"radio\radio 02 - 06.mp3"
        GoTo RADIO02CREATED

        Label TRCK0207
        If Flt[10]=7,-1,TRCK0208
        Stream_Create 2,"radio\radio 02 - 07.mp3"
        GoTo RADIO02CREATED

        Label TRCK0208
        If Flt[10]=8,-1,TRCK0209
        Stream_Create 2,"radio\radio 02 - 08.mp3"
        GoTo RADIO02CREATED
       
        Label TRCK0209
        If Flt[10]=9,-1,RADIO02CREATED       
        Stream_Create 2,"radio\radio 02 - 09.mp3"
        GoTo RADIO02CREATED

Label RADIO02CREATED
Stream_Fadevol 2,1,0,0
Stream_Play 2
If Flt[17]>0,REPLAY2,-1



Label RADIO03CREATE
Rnd 10,10
If Flt[14]=Flt[10],RADIO03CREATE,-1
Let Flt[14]=Flt[10]

        Label TRCK0300
        If Flt[10]=0,-1,TRCK0301
        Stream_Create 3,"radio\radio 03 - 00.mp3"
        GoTo RADIO03CREATED

        Label TRCK0301
        If Flt[10]=1,-1,TRCK0302
        Stream_Create 3,"radio\radio 03 - 01.mp3"
        GoTo RADIO03CREATED
       
        Label TRCK0302
        If Flt[10]=2,-1,TRCK0303
        Stream_Create 3,"radio\radio 03 - 02.mp3"
        GoTo RADIO03CREATED       
       
        Label TRCK0303
        If Flt[10]=3,-1,TRCK0304
        Stream_Create 3,"radio\radio 03 - 03.mp3"
        GoTo RADIO03CREATED       

        Label TRCK0304
        If Flt[10]=4,-1,TRCK0305
        Stream_Create 3,"radio\radio 03 - 04.mp3"
        GoTo RADIO03CREATED

        Label TRCK0305
        If Flt[10]=5,-1,TRCK0306
        Stream_Create 3,"radio\radio 03 - 05.mp3"
        GoTo RADIO03CREATED

        Label TRCK0306
        If Flt[10]=6,-1,TRCK0307
        Stream_Create 3,"radio\radio 03 - 06.mp3"
        GoTo RADIO03CREATED

        Label TRCK0307
        If Flt[10]=7,-1,TRCK0308
        Stream_Create 3,"radio\radio 03 - 07.mp3"
        GoTo RADIO03CREATED

        Label TRCK0308
        If Flt[10]=8,-1,TRCK0309
        Stream_Create 3,"radio\radio 03 - 08.mp3"
        GoTo RADIO03CREATED
       
        Label TRCK0309
        If Flt[10]=9,-1,RADIO03CREATED       
        Stream_Create 3,"radio\radio 03 - 09.mp3"
        GoTo RADIO03CREATED

Label RADIO03CREATED
Stream_Fadevol 3,1,0,0
Stream_Play 3
If Flt[18]>0,REPLAY3,-1

Let Flt[6]=Flt[0]



CommandBlock 0
Label CHECK
CommandBlock 1
Human_GetProperty 0,7,Energy
If Flt[7]=0,DEATH,-1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CommandBlock 1
CityMusic_Off
If Flt[9]>-1,-1,RADIO_OFF
Stream_Fadevol 6,1,1,1
Label RADIO_OFF
Let Flt[4]=1
CommandBlock 0
Wait 1000
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
Stream_Fadevol 6,1,0,0
CityMusic_On
Let Flt[4]=0
Wait 1000
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_1
        If Flt[9]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[9]=1,-1,CHNGUPTO_3
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_3
        If Flt[9]=2,-1,CHNGUPTO_0
        Let Flt[6]=Flt[3]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_0
        If Flt[9]=3,-1,RADIOPLUS
        Let Flt[6]=Flt[0]
       
Label RADIOPLUS
Let Flt[9]=Flt[9]+1
If Flt[9]>3,-1,CHANGEDUP
Let Flt[9]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_3
        If Flt[9]=-1,-1,CHNGDWNTO_2
        Let Flt[6]=Flt[3]
        GoTo RADIOMINUS

        Label CHNGDWNTO_2
        If Flt[9]=3,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[9]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[9]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[9]=Flt[9]-1
If Flt[9]=-1,RADIO_OFF_DOWN,-1
If Flt[9]<-1,-1,CHANGEDDOWN
Let Flt[9]=3
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY



Label POSITION
GetGameTime 7
Let Flt[10]=Flt[7]-Flt[8]
If Flt[10]<1000,CHECK_IN_CAR,-1
Let Flt[8]=Flt[7]

        Label GETPOS0
        Stream_GetPos 0,7
        If Flt[7]=Flt[15],RADIO0END,-1
        Let Flt[15]=Flt[7]
        GoTo GETPOS1
        Label RADIO0END
        Stream_Destroy 0
        GoTo RADIO00CREATE
        Label REPLAY0
        Let Flt[15]=-1
        If Flt[4]=0,GETPOS1,-1
        If Flt[9]=0,-1,GETPOS1
        Let Flt[6]=Flt[0]
        Stream_Fadevol 0,1,1,1

        Label GETPOS1
        Stream_GetPos 1,7
        If Flt[7]=Flt[16],RADIO1END,-1
        Let Flt[16]=Flt[7]
        GoTo GETPOS2
        Label RADIO1END
        Stream_Destroy 1
        GoTo RADIO01CREATE
        Label REPLAY1
        Let Flt[16]=-1
        If Flt[4]=0,GETPOS2,-1
        If Flt[9]=1,-1,GETPOS2
        Let Flt[6]=Flt[1]
        Stream_Fadevol 1,1,1,1

        Label GETPOS2
        Stream_GetPos 2,7
        If Flt[7]=Flt[17],RADIO2END,-1
        Let Flt[17]=Flt[7]
        GoTo GETPOS3
        Label RADIO2END
        Stream_Destroy 2
        GoTo RADIO02CREATE
        Label REPLAY2
        Let Flt[17]=-1
        If Flt[4]=0,GETPOS3,-1
        If Flt[9]=2,-1,GETPOS3
        Let Flt[6]=Flt[2]
        Stream_Fadevol 2,1,1,1

        Label GETPOS3
        Stream_GetPos 3,7
        If Flt[7]=Flt[18],RADIO3END,-1
        Let Flt[18]=Flt[7]
        GoTo CHECK_IN_CAR
        Label RADIO3END
        Stream_Destroy 3
        GoTo RADIO03CREATE
        Label REPLAY3
        Let Flt[18]=-1
        If Flt[4]=0,CHECK_IN_CAR,-1
        If Flt[9]=3,-1,CHECK_IN_CAR
        Let Flt[6]=Flt[3]
        Stream_Fadevol 3,1,1,1

GoTo CHECK_IN_CAR

Label DEATH
CommandBlock 1
Stream_Destroy 0
Stream_Destroy 1
Stream_Destroy 2
Stream_Destroy 3
CommandBlock 0

[свернуть]

Kaiser 09.10.2020 21:06

2 KlassenAS

Я немного запутался. Ты проверял скрипт с коммандоблоками или мне нужно протестировать?

KlassenAS 09.10.2020 21:26

Цитата:

Сообщение от Kaiser (Сообщение 12388)
Я немного запутался. Ты проверял скрипт с коммандоблоками или мне нужно протестировать?

В чём именно запутался?
Это не тот скрипт, что нужен для твоего мода, это другая версия.
Написанная с подачи Abradox.
Этот скрипт, что я сейчас выложил, я проверил вдоль и поперёк.
4 радиостанции по 10 треков на каждой, с рандомизацией. Работает хорошо, но из-за кривых особенностей игры после сохранения начинаются проблемы с непрошеным воспроизведением потоков, которые не удалось решить средствами скриптинга.
Если хочешь, - можешь попробовать этот скрипт в деле.
Не хочешь - так и не заморачивайся )

Я планировал сегодня исправить версию скрипта для твоего мода, но после тщетных попыток побороть ошибки в своей, "флагманской", версии, силы мои иссякли, увы.

Kaiser 09.10.2020 21:29

Так может тогда убрать из него функцию запоминания? Пусть тогда каждый раз сначала играет, коли команда несовершенна.

KlassenAS 09.10.2020 21:31

Цитата:

Сообщение от Kaiser (Сообщение 12392)
Так может тогда убрать из него функцию запоминания? Пусть тогда каждый раз сначала играет, коли команда несовершенна.

Теперь я запутался. Какое запоминание ты имеешь в виду?

Kaiser 09.10.2020 21:33

У нас была проблема, что после загрузки сохранения, музыка из радио играет вне машины. Ты говорил, что это из-за команды Сетлуп, или как-то так.

Abradox 09.10.2020 21:33

А что если при загрузки игры из меню или при загрузки сохранения, сначала дестроить все существующие или не существующие потоки, а потом уже стартовать нужные?

таким образом при сохранении даже если они и запишутся, то уничтожатся при загрузке.
Это было бы плохо если бы трэк-лист всегда начинался с начала, но у нас же вроде рандомный аудио-файл выбирается из списка?

Kaiser 09.10.2020 21:43

Если речь о моем радио, то там один часовой трек.

KlassenAS 09.10.2020 21:48

Цитата:

Сообщение от Abradox (Сообщение 12397)
А если при загрузки игры из меню или при сзагрузки сохранения сначала дестроить все существующие или не существующие потоки, а потом уже загружать нужные.
т.к. образом при сохранении даже если они и запишутся, то уничтожатся при загрузке.

Именно так я и пытался решить проблему. Аж три способа перепробовал.
Я где-то выше об этом писал.
Всё тщетно, из скрипта не удаётся докопаться до этих потоков. Я пробовал даже сделать цикл, чтобы менять идентификатор потока от 0 до 1000 и дестроить потоки по этим номерам. Но у меня сложилось впечатление, что из скрипта можно получить доступ только к потокам, созданным в этом скрипте, а после загрузки потоки этому скрипту не принадлежат. Странная хрень. И так пытался дестроить и эдак...
Может попробовать сделать цикл от 0 до 5000? )
Цитата:

Сообщение от Abradox (Сообщение 12397)
Это было бы плохо если бы трэк-лист всегда начинался с начала, но у нас же вроде рандомный аудио-файл выбирается из списка?

Да, при старте для каждго потока рандомно выбирается 1 из 10 файлов и я ещё подстраховался, чтобы случайно не заиграл один и тот же трек два раза подряд.

Цитата:

Сообщение от Kaiser (Сообщение 12396)
У нас была проблема, что после загрузки сохранения, музыка из радио играет вне машины. Ты говорил, что это из-за команды Сетлуп, или как-то так.

Да, потому, что по умолчанию созданный поток автоматически не воспроизводится.
Только если был зациклен.
Но учти, похоже, что после сохранения всё равно останется риск, что поток начнёт играть после юзания клавиши ESC. То есть, игра его всё равно создаст и он будет висеть в памяти, только сам не начнёт играть.

Цитата:

Сообщение от Kaiser (Сообщение 12398)
Если речь о моем радио, то там один часовой трек.

Всё просто. С тобой я говорю о твоём радио.
С Abradox - о своём.

Kaiser 09.10.2020 21:56

2 KlassenAS

Ладно, все равно тебе спасибо! Тогда оставим вариант с продолжением с исходной точки при выходе из авто. Просто буду писать в РИдМи, что есть такой-то баг и не сохраняйте игру. И выпущу тогда дополнение отдельным ДЛС, для тех, кто не захочет радио на постоянку.

Staghound 09.10.2020 22:13

Скрипт автомобильного радио
 
Сделано

KlassenAS 10.10.2020 22:02

Так.
Кажется, я встал на путь истинный :D
До этого я все потоки только мютил.
А сейчас стал ставить на паузу.
Удивительно, но больше у меня баг с воспроизведением после загрузки не появляется.
Хотя, может быть, я плохо старался?
У меня сложилось впечатление, что игра сохраняет и восстанавливает при загрузки только те потоки, которые были активны на момент сохранения.
А те, что были на паузе - игнорирует.
Но на самом деле я знаю, что я ничего не знаю.
Слишком часто за время разработки этих скриптов у меня складывалось ложное впечатление.
в любом случае, баг не даёт о себе знать.
Так что на подходе 4 версии скрипта )

И ещё, если кто знает хорошие интернет-радиостанции, ориентированные на классику, джаз, блюз, рок-н-ролл или рок, скиньте мне ссылки на их аудиопоток, типа того, что Firefox3860 скидывал:"http://airtime.joyradio.cc:8000/airtime_192.mp3"
Я их вставлю в один из скриптов )

Firefox3860 10.10.2020 22:22

KlassenAS, Чё, всё таки паузы нужны, как сначала было?

KlassenAS 11.10.2020 15:59

Цитата:

Сообщение от Firefox3860 (Сообщение 12428)
KlassenAS, Чё, всё таки паузы нужны, как сначала было?

Ага, похоже на то. Но и мютить тоже надо, чтобы запаузенный поток от ESC не заиграл.

UPD:

Ну, что, друзья, вот вам!
По моим ощущениям - багов нет.
Кто найдёт - тот молодец )

Ver. 1.0

Развернуть для просмотра

Код:

//Radio Script Ver. 1.0 11-10-2020 By KlassenAS For Kaiser
//Одна радиостанция с одним треком.
//Поле окончания трек сбрасывается на начало.
//Этот скрипт хорош, если у Вас файл с длиннющей записью реального либо фейкового радиоэфира.
Dim_Act 1
Dim_Flt 6
GetActivePlayer 0

//Удалить для использования в scene2.bin
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,0,Energy
If Flt[0]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления

Let Flt[0]=0  //поток 00
Let Flt[1]=0  //логика
Let Flt[2]=-1 //сиденье/Время с начала игры/текущее время потока/
Let Flt[3]=0  //Прошлое время с начала игры
Let Flt[4]=-1 //разница во времени игры
Let Flt[5]=-1 //прошлое время потока

CommandBlock 1
Stream_Create 0,"radio\radio00.mp3"
Stream_FadeVol 0,1,0,0
CommandBlock 0

Label CHECK
CommandBlock 1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,2
If Flt[2]=-1,CAR_OUT,CAR_IN

Label CAR_IN
If Flt[1]=0,-,CHECK
CityMusic_Off
Wait 500
Stream_Play 0
Stream_FadeVol 0,1,1,1
Let Flt[1]=1
GoTo CHECK

Label CAR_OUT
If Flt[1]=1,-1,CHECK
Stream_FadeVol 0,1,0,0
Stream_Pause 0
CityMusic_On
Let Flt[1]=0
GoTo CHECK

Label POSITION
If Flt[1]=0,CHECK_IN_CAR,-1
GetGameTime 2
Let Flt[4]=Flt[2]-Flt[3]
If Flt[4]<1000,CHECK_IN_CAR,-1
Let Flt[3]=Flt[2]
Stream_GetPos 0,2
If Flt[2]=Flt[5],RADIOEND,-1
Let Flt[5]=Flt[2]
GoTo CHECK_IN_CAR
Label RADIOEND
Let Flt[2]=0
Stream_SetPos 0,2
Let Flt[5]=-1
If Flt[1]=0,CHECK_IN_CAR,-1
Stream_Play 0
GoTo CHECK_IN_CAR

[свернуть]


Ver. 1.1

Развернуть для просмотра

Код:

//Radio Script Ver. 1.1 11-10-2020 By KlassenAS
//Три радиостанции, на каждой один трек.
//Радиостанции переключаются. Также радио можно выключить.
//Поле окончания трек сбрасывается на начало.
//Этот скрипт хорош, если у Вас файл с длиннющей записью реального либо фейкового радиоэфира.
Dim_Act 1
Dim_Flt 13
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления


Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //номер радиостанции 0-2
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье/Время с начала игры/текущее время потока/
Let Flt[8]=0 //Прошлое время с начала игры
Let Flt[9]=0 //разница во времени игры
Let Flt[10]=-1 //прошлое время потока 0
Let Flt[11]=-1 //прошлое время потока 1
Let Flt[12]=-1 //прошлое время потока 2



CommandBlock 1
Stream_Create 0,"radio\radio00.mp3"
Stream_Fadevol 0,1,0,0

Stream_Create 1,"radio\radio01.mp3"
Stream_Fadevol 1,1,0,0

Stream_Create 2,"radio\radio02.mp3"
Stream_Fadevol 2,1,0,0

Let Flt[6]=Flt[0]
CommandBlock 0



Label CHECK
CommandBlock 1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Let Flt[4]=1
Wait 500
CommandBlock 1
If Flt[3]>-1,-1,RADIO_OFF
Stream_Fadevol 0,1,0,0
Stream_Play 0
Stream_Fadevol 1,1,0,0
Stream_Play 1
Stream_Fadevol 2,1,0,0
Stream_Play 2
Stream_Fadevol 6,1,1,1
Label RADIO_OFF
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
Stream_Fadevol 6,1,0,0
Stream_Pause 0
Stream_Pause 1
Stream_Pause 2
Let Flt[4]=0
CityMusic_On
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_1
        If Flt[3]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[3]=1,-1,CHNGUPTO_0
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_0
        If Flt[3]=2,-1,RADIOPLUS
        Let Flt[6]=Flt[0]
       
Label RADIOPLUS
Let Flt[3]=Flt[3]+1
If Flt[3]>2,-1,CHANGEDUP
Let Flt[3]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_2
        If Flt[3]=-1,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[3]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[3]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[3]=Flt[3]-1
If Flt[3]=-1,RADIO_OFF_DOWN,-1
If Flt[3]<-1,-1,CHANGEDDOWN
Let Flt[3]=2
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY



Label POSITION
If Flt[4]=0,CHECK_IN_CAR,-1
GetGameTime 7
Let Flt[9]=Flt[7]-Flt[8]
If Flt[9]<1000,CHECK_IN_CAR,-1
Let Flt[8]=Flt[7]

        Label GETPOS0
        Stream_GetPos 0,7
        If Flt[7]=Flt[10],RADIO0END,-1
        Let Flt[10]=Flt[7]
        GoTo GETPOS1
        Label RADIO0END
        Let Flt[7]=0
        Stream_SetPos 0,7
        Stream_Fadevol 0,1,0,0
        Let Flt[10]=-1
        Stream_Play 0
        If Flt[3]=0,-1,GETPOS1
        Stream_Fadevol 0,1,1,1

        Label GETPOS1
        Stream_GetPos 1,7
        If Flt[7]=Flt[11],RADIO1END,-1
        Let Flt[11]=Flt[7]
        GoTo GETPOS2
        Label RADIO1END
        Let Flt[7]=0
        Stream_SetPos 1,7
        Stream_Fadevol 1,1,0,0
        Let Flt[11]=-1
        Stream_Play 1
        If Flt[3]=1,-1,GETPOS2
        Stream_Fadevol 1,1,1,1

        Label GETPOS2
        Stream_GetPos 2,7
        If Flt[7]=Flt[12],RADIO2END,-1
        Let Flt[12]=Flt[7]
        GoTo CHECK_IN_CAR
        Label RADIO2END
        Let Flt[7]=0
        Stream_SetPos 2,7
        Stream_Fadevol 2,1,0,0
        Let Flt[12]=-1
        Stream_Play 2       
        If Flt[3]=2,-1,CHECK_IN_CAR
        Stream_Fadevol 2,1,1,1

GoTo CHECK_IN_CAR

[свернуть]


Ver. 1.2

Развернуть для просмотра

Код:

//Radio Script Ver. 1.2 11-10-2020 By KlassenAS
//Три радиостанции, каждой можно присвоить ссылку на поток реального интернет-радио.
//При старте миссии игра зависнет нанесколько секунд
//Это нормально, т. к. игра лезет в интернет, чтобы загрузить аудиопоток.
//Радиостанции переключаются. Также радио можно выключить.
Dim_Act 1
Dim_Flt 8
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления


Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //номер радиостанции 0-2
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье



Stream_Create 0,"http://airtime.joyradio.cc:8000/airtime_192.mp3"
Stream_Fadevol 0,1,0,0

Stream_Create 1,"radio\radio01.mp3"
Stream_Fadevol 1,1,0,0

Stream_Create 2,"radio\radio02.mp3"
Stream_Fadevol 2,1,0,0

Let Flt[6]=Flt[0]



Label CHECK
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Let Flt[4]=1
Wait 500
CommandBlock 1
If Flt[3]>-1,-1,RADIO_OFF
Stream_Fadevol 0,1,0,0
Stream_Play 0
Stream_Fadevol 1,1,0,0
Stream_Play 1
Stream_Fadevol 2,1,0,0
Stream_Play 2
Stream_Fadevol 6,1,1,1
Label RADIO_OFF
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
Stream_Fadevol 6,1,0,0
Stream_Pause 0
Stream_Pause 1
Stream_Pause 2
Let Flt[4]=0
CityMusic_On
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_1
        If Flt[3]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[3]=1,-1,CHNGUPTO_0
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_0
        If Flt[3]=2,-1,RADIOPLUS
        Let Flt[6]=Flt[0]
       
Label RADIOPLUS
Let Flt[3]=Flt[3]+1
If Flt[3]>2,-1,CHANGEDUP
Let Flt[3]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_2
        If Flt[3]=-1,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[3]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[3]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[3]=Flt[3]-1
If Flt[3]=-1,RADIO_OFF_DOWN,-1
If Flt[3]<-1,-1,CHANGEDDOWN
Let Flt[3]=2
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY

[свернуть]


Ver. 2.0

Развернуть для просмотра

Код:

//Radio Script Ver. 2.0 11-10-2020 By KlassenAS
//Четыре радиостанции, по 10 треков на каждой
//Радиостанции переключаются. Также радио можно выключить.
//При старте на каждой радиостанции случайным образом
//начинает играть один из 10 треков.
//По окончании трека, следующий выбирается так же, случайным образом.

Dim_Act 1
Dim_Flt 19
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления



Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //поток 03
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье/Время с начала игры/текущее время потока/
Let Flt[8]=0 //Прошлое время с начала игры
Let Flt[9]=0 //номер радиостанции 0-3
Let Flt[10]=-1 //рандом для radio/разница во времени игры
Let Flt[11]=-1 //чтоб на radio00 не повторялись дважды
Let Flt[12]=-1 //чтоб на radio01 не повторялись дважды
Let Flt[13]=-1 //чтоб на radio02 не повторялись дважды
Let Flt[14]=-1 //чтоб на radio03 не повторялись дважды
Let Flt[15]=-1 //прошлое время потока 0
Let Flt[16]=-1 //прошлое время потока 1
Let Flt[17]=-1 //прошлое время потока 2
Let Flt[18]=-1 //прошлое время потока 3



CommandBlock 1
Label RADIO00CREATE
Rnd 10,10
If Flt[11]=Flt[10],RADIO00CREATE,-1
Let Flt[11]=Flt[10]

        Label TRCK0000
        If Flt[10]=0,-1,TRCK0001
        Stream_Create 0,"radio\radio 00 - 00.mp3"
        GoTo RADIO00CREATED

        Label TRCK0001
        If Flt[10]=1,-1,TRCK0002
        Stream_Create 0,"radio\radio 00 - 01.mp3"
        GoTo RADIO00CREATED

        Label TRCK0002
        If Flt[10]=2,-1,TRCK0003
        Stream_Create 0,"radio\radio 00 - 02.mp3"
        GoTo RADIO00CREATED       

        Label TRCK0003
        If Flt[10]=3,-1,TRCK0004
        Stream_Create 0,"radio\radio 00 - 03.mp3"
        GoTo RADIO00CREATED

        Label TRCK0004
        If Flt[10]=4,-1,TRCK0005
        Stream_Create 0,"radio\radio 00 - 04.mp3"
        GoTo RADIO00CREATED

        Label TRCK0005
        If Flt[10]=5,-1,TRCK0006
        Stream_Create 0,"radio\radio 00 - 05.mp3"
        GoTo RADIO00CREATED

        Label TRCK0006
        If Flt[10]=6,-1,TRCK0007
        Stream_Create 0,"radio\radio 00 - 06.mp3"
        GoTo RADIO00CREATED

        Label TRCK0007
        If Flt[10]=7,-1,TRCK0008
        Stream_Create 0,"radio\radio 00 - 07.mp3"
        GoTo RADIO00CREATED

        Label TRCK0008
        If Flt[10]=8,-1,TRCK0009
        Stream_Create 0,"radio\radio 00 - 08.mp3"
        GoTo RADIO00CREATED

        Label TRCK0009
        If Flt[10]=9,-1,RADIO00CREATED
        Stream_Create 0,"radio\radio 00 - 09.mp3"
        GoTo RADIO00CREATED

Label RADIO00CREATED
Stream_Fadevol 0,1,0,0
If Flt[15]>0,REPLAY0,-1



Label RADIO01CREATE
Rnd 10,10
If Flt[12]=Flt[10],RADIO01CREATE,-1
Let Flt[12]=Flt[10]

        Label TRCK0100
        If Flt[10]=0,-1,TRCK0101
        Stream_Create 1,"radio\radio 01 - 00.mp3"
        GoTo RADIO01CREATED

        Label TRCK0101
        If Flt[10]=1,-1,TRCK0102
        Stream_Create 1,"radio\radio 01 - 01.mp3"
        GoTo RADIO01CREATED

        Label TRCK0102
        If Flt[10]=2,-1,TRCK0103
        Stream_Create 1,"radio\radio 01 - 02.mp3"
        GoTo RADIO01CREATED       

        Label TRCK0103
        If Flt[10]=3,-1,TRCK0104
        Stream_Create 1,"radio\radio 01 - 03.mp3"
        GoTo RADIO01CREATED

        Label TRCK0104
        If Flt[10]=4,-1,TRCK0105
        Stream_Create 1,"radio\radio 01 - 04.mp3"
        GoTo RADIO01CREATED

        Label TRCK0105
        If Flt[10]=5,-1,TRCK0106
        Stream_Create 1,"radio\radio 01 - 05.mp3"
        GoTo RADIO01CREATED

        Label TRCK0106
        If Flt[10]=6,-1,TRCK0107
        Stream_Create 1,"radio\radio 01 - 06.mp3"
        GoTo RADIO01CREATED

        Label TRCK0107
        If Flt[10]=7,-1,TRCK0108
        Stream_Create 1,"radio\radio 01 - 07.mp3"
        GoTo RADIO01CREATED

        Label TRCK0108
        If Flt[10]=8,-1,TRCK0109
        Stream_Create 1,"radio\radio 01 - 08.mp3"
        GoTo RADIO01CREATED

        Label TRCK0109
        If Flt[10]=9,-1,RADIO01CREATED
        Stream_Create 1,"radio\radio 01 - 09.mp3"
        GoTo RADIO01CREATED

Label RADIO01CREATED
Stream_Fadevol 1,1,0,0
If Flt[16]>0,REPLAY1,-1



Label RADIO02CREATE
Rnd 10,10
If Flt[13]=Flt[10],RADIO02CREATE,-1
Let Flt[13]=Flt[10]

        Label TRCK0200
        If Flt[10]=0,-1,TRCK0201
        Stream_Create 2,"radio\radio 02 - 00.mp3"
        GoTo RADIO02CREATED

        Label TRCK0201
        If Flt[10]=1,-1,TRCK0202
        Stream_Create 2,"radio\radio 02 - 01.mp3"
        GoTo RADIO02CREATED

        Label TRCK0202
        If Flt[10]=2,-1,TRCK0203
        Stream_Create 2,"radio\radio 02 - 02.mp3"
        GoTo RADIO02CREATED

        Label TRCK0203
        If Flt[10]=3,-1,TRCK0204
        Stream_Create 2,"radio\radio 02 - 03.mp3"
        GoTo RADIO02CREATED

        Label TRCK0204
        If Flt[10]=4,-1,TRCK0205
        Stream_Create 2,"radio\radio 02 - 04.mp3"
        GoTo RADIO02CREATED

        Label TRCK0205
        If Flt[10]=5,-1,TRCK0206
        Stream_Create 2,"radio\radio 02 - 05.mp3"
        GoTo RADIO02CREATED

        Label TRCK0206
        If Flt[10]=6,-1,TRCK0207
        Stream_Create 2,"radio\radio 02 - 06.mp3"
        GoTo RADIO02CREATED

        Label TRCK0207
        If Flt[10]=7,-1,TRCK0208
        Stream_Create 2,"radio\radio 02 - 07.mp3"
        GoTo RADIO02CREATED

        Label TRCK0208
        If Flt[10]=8,-1,TRCK0209
        Stream_Create 2,"radio\radio 02 - 08.mp3"
        GoTo RADIO02CREATED

        Label TRCK0209
        If Flt[10]=9,-1,RADIO02CREATED
        Stream_Create 2,"radio\radio 02 - 09.mp3"
        GoTo RADIO02CREATED

Label RADIO02CREATED
Stream_Fadevol 2,1,0,0
If Flt[17]>0,REPLAY2,-1



Label RADIO03CREATE
Rnd 10,10
If Flt[14]=Flt[10],RADIO03CREATE,-1
Let Flt[14]=Flt[10]

        Label TRCK0300
        If Flt[10]=0,-1,TRCK0301
        Stream_Create 3,"radio\radio 03 - 00.mp3"
        GoTo RADIO03CREATED

        Label TRCK0301
        If Flt[10]=1,-1,TRCK0302
        Stream_Create 3,"radio\radio 03 - 01.mp3"
        GoTo RADIO03CREATED

        Label TRCK0302
        If Flt[10]=2,-1,TRCK0303
        Stream_Create 3,"radio\radio 03 - 02.mp3"
        GoTo RADIO03CREATED

        Label TRCK0303
        If Flt[10]=3,-1,TRCK0304
        Stream_Create 3,"radio\radio 03 - 03.mp3"
        GoTo RADIO03CREATED

        Label TRCK0304
        If Flt[10]=4,-1,TRCK0305
        Stream_Create 3,"radio\radio 03 - 04.mp3"
        GoTo RADIO03CREATED

        Label TRCK0305
        If Flt[10]=5,-1,TRCK0306
        Stream_Create 3,"radio\radio 03 - 05.mp3"
        GoTo RADIO03CREATED

        Label TRCK0306
        If Flt[10]=6,-1,TRCK0307
        Stream_Create 3,"radio\radio 03 - 06.mp3"
        GoTo RADIO03CREATED

        Label TRCK0307
        If Flt[10]=7,-1,TRCK0308
        Stream_Create 3,"radio\radio 03 - 07.mp3"
        GoTo RADIO03CREATED

        Label TRCK0308
        If Flt[10]=8,-1,TRCK0309
        Stream_Create 3,"radio\radio 03 - 08.mp3"
        GoTo RADIO03CREATED

        Label TRCK0309
        If Flt[10]=9,-1,RADIO03CREATED
        Stream_Create 3,"radio\radio 03 - 09.mp3"
        GoTo RADIO03CREATED

Label RADIO03CREATED
Stream_Fadevol 3,1,0,0
If Flt[18]>0,REPLAY3,-1

Let Flt[6]=Flt[0]
CommandBlock 0



Label CHECK
CommandBlock 1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Let Flt[4]=1
Wait 500
CommandBlock 1
If Flt[9]>-1,-1,RADIO_OFF
Stream_FadeVol 0,1,0,0
Stream_Play 0
Stream_FadeVol 1,1,0,0
Stream_Play 1
Stream_FadeVol 2,1,0,0
Stream_Play 2
Stream_FadeVol 3,1,0,0
Stream_Play 3
Stream_FadeVol 6,1,1,1
Label RADIO_OFF
CommandBlock 0

GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
Stream_Fadevol 6,1,0,0
Stream_Pause 0
Stream_Pause 1
Stream_Pause 2
Stream_Pause 3
Let Flt[4]=0
CityMusic_On
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_1
        If Flt[9]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[9]=1,-1,CHNGUPTO_3
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_3
        If Flt[9]=2,-1,CHNGUPTO_0
        Let Flt[6]=Flt[3]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_0
        If Flt[9]=3,-1,RADIOPLUS
        Let Flt[6]=Flt[0]
       
Label RADIOPLUS
Let Flt[9]=Flt[9]+1
If Flt[9]>3,-1,CHANGEDUP
Let Flt[9]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_3
        If Flt[9]=-1,-1,CHNGDWNTO_2
        Let Flt[6]=Flt[3]
        GoTo RADIOMINUS

        Label CHNGDWNTO_2
        If Flt[9]=3,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[9]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[9]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[9]=Flt[9]-1
If Flt[9]=-1,RADIO_OFF_DOWN,-1
If Flt[9]<-1,-1,CHANGEDDOWN
Let Flt[9]=3
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY



Label POSITION
If Flt[4]=0,CHECK_IN_CAR,-1
GetGameTime 7
Let Flt[10]=Flt[7]-Flt[8]
If Flt[10]<1000,CHECK_IN_CAR,-1
Let Flt[8]=Flt[7]

        Label GETPOS0
        Stream_GetPos 0,7
        If Flt[7]=Flt[15],RADIO0END,-1
        Let Flt[15]=Flt[7]
        GoTo GETPOS1
        Label RADIO0END
        Stream_Fadevol 0,1,0,0
        Stream_Pause 0
        Stream_Destroy 0
        GoTo RADIO00CREATE
        Label REPLAY0
        Stream_Play 0
        Let Flt[15]=-1
        If Flt[9]=0,-1,GETPOS1
        Let Flt[6]=Flt[0]
        Stream_Fadevol 0,1,1,1

        Label GETPOS1
        Stream_GetPos 1,7
        If Flt[7]=Flt[16],RADIO1END,-1
        Let Flt[16]=Flt[7]
        GoTo GETPOS2
        Label RADIO1END
        Stream_Fadevol 1,1,0,0
        Stream_Pause 1
        Stream_Destroy 1
        GoTo RADIO01CREATE
        Label REPLAY1
        Stream_Play 1
        Let Flt[16]=-1
        If Flt[9]=1,-1,GETPOS2
        Let Flt[6]=Flt[1]
        Stream_Fadevol 1,1,1,1

        Label GETPOS2
        Stream_GetPos 2,7
        If Flt[7]=Flt[17],RADIO2END,-1
        Let Flt[17]=Flt[7]
        GoTo GETPOS3
        Label RADIO2END
        Stream_Fadevol 2,1,0,0
        Stream_Pause 2
        Stream_Destroy 2
        GoTo RADIO02CREATE
        Label REPLAY2
        Stream_Play 2
        Let Flt[17]=-1
        If Flt[9]=2,-1,GETPOS3
        Let Flt[6]=Flt[2]
        Stream_Fadevol 2,1,1,1

        Label GETPOS3
        Stream_GetPos 3,7
        If Flt[7]=Flt[18],RADIO3END,-1
        Let Flt[18]=Flt[7]
        GoTo CHECK_IN_CAR
        Label RADIO3END
        Stream_Fadevol 3,1,0,0
        Stream_Pause 3
        Stream_Destroy 3
        GoTo RADIO03CREATE
        Label REPLAY3
        Stream_Play 3
        Let Flt[18]=-1
        If Flt[9]=3,-1,CHECK_IN_CAR
        Let Flt[6]=Flt[3]
        Stream_Fadevol 3,1,1,1

GoTo CHECK_IN_CAR

[свернуть]


Единственное, что меня сейчас смущает: при выходе из машины, когда треки ставятся на паузу, не всегда срабатывает команда CityMusic_On.
Причём, чаще не срабатывает.
Хз, почему. В логике скрипта ошибки нет. Все потоки ставятся на паузу.
Капризничает )
Если кто знает, как с этим быть, расскажите, пожалуйста.

Осталось дело за малым.
Ту версию, что рассчитана на 4 станции по 10 треков, адаптировать для реализации идеи, которую предложил Abradox.

Да, кстати, Firefox3860, я нашёл прямые ссылки на mp3 десяти радиостанций, транслирующих джаз и блюз.
Самое то для "Мафии".
Но все они намертво вешают игру.
В игре нормально аботает только та ссылка на джойрадио, которую ты мне скинул.
Не знаешь, почему?

grandshot 11.10.2020 18:11

Предположу, что формат вещания другой, не поддерживаемый движком из 2001-го

Firefox3860 11.10.2020 18:30

KlassenAS, Круто ты постарался, далеко не каждый смог бы такое на mafiascript'е сделать :)

Цитата:

Сообщение от KlassenAS (Сообщение 12454)
Единственное, что меня сейчас смущает: при выходе из машины, когда треки ставятся на паузу, не всегда срабатывает команда CityMusic_On.
Причём, чаще не срабатывает.

Я так думаю, что она срабатывает, но музыка не включается сразу потому, что в этот момент игрок находится за пределами области города, в которой включается определённая citymusic. Такое бывает, надо поперемещаться по городу, и тогда она должна заиграть.

Цитата:

Сообщение от KlassenAS (Сообщение 12454)
Да, кстати, Firefox3860, я нашёл прямые ссылки на mp3 десяти радиостанций, транслирующих джаз и блюз.
Самое то для "Мафии".
Но все они намертво вешают игру.
В игре нормально аботает только та ссылка на джойрадио, которую ты мне скинул.
Не знаешь, почему?

Все сразу или по отдельности? Та ссылка, что я кинул, тоже вешает, но не надолго. Я думал, что в это время игра пытается подключиться к сайту через интернет и начать прогрузку. Возможно, в случаях с другими ссылками она не может сделать подключение или действительно с форматом у них что-то не то.

KlassenAS 11.10.2020 20:14

Ядрёна вошь! Опять этот баг после сохранения появился!
Почему до этого весь день не было?!
Вообще не понимаю, что происходит.
Реально, что-ли, при каждом выходе из машины все потоки уничтожать надо?
И что это будет?
Каждый раз, как садишься в машину, всё заново?

Цитата:

Сообщение от Firefox3860 (Сообщение 12460)
Я так думаю, что она срабатывает, но музыка не включается сразу потому, что в этот момент игрок находится за пределами области города, в которой включается определённая citymusic. Такое бывает, надо поперемещаться по городу, и тогда она должна заиграть.

Ну так я-то не за пределами города, я возде бара Сальери.

Цитата:

Сообщение от Firefox3860 (Сообщение 12460)
Все сразу или по отдельности?

По отдельности. Достаточно одной.

Abradox, родную мафиозную музыку я в скрипт вписал. Первая радиостанция будет.
Какие планы у нас дальше?

UPD: Поздравьте меня, друзья, я идиот!
Я же сам использовал команды Stream_GetPos и Stream_SetPos для определения окончания трека и для его перезапуска, если нужно.
Я же могу, при выходе из машины, запоминать позицию каждого потока, уничтожать потоки, а при возвращении в машину всё восстанавливать!
Похоже, мне предстоит снова хорошенько перелопатить все версии скрипта...

GOLOD55 11.10.2020 23:53

точно лол, ж есть стрим_сетпос:)
помнится, в музтомате я замутил ею прикол: если один и тот же трек выбирать слушать, то "игла граммафона" начинала иной раз перескакивать "дорожки":)

KlassenAS 12.10.2020 10:18

Ну вот! Наконец-то!
И команда CityMusic_On нормально работать стала, и сетлупить можно спокойно, не прибегая к изощрённым способам определения длительности, когда это не нужно.

Ver. 1.0
Kaiser, проверяй, теперь у тебя вообще не должно быть проблем с использованием скрипта.

Развернуть для просмотра

Код:

//Radio Script Ver. 1.0 12-10-2020 By KlassenAS For Kaiser
//Одна радиостанция с одним треком.
//Поле окончания трек сбрасывается на начало.
//Этот скрипт хорош, если у Вас файл с длиннющей записью реального либо фейкового радиоэфира.
Dim_Act 2
Dim_Flt 8
GetActivePlayer 0
FindActor 1, "fire"


//Удалить для использования в scene2.bin
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,0,Energy
If Flt[0]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления

Let Flt[0]=0  //поток 00
Let Flt[1]=0  //логика
Let Flt[2]=-1 //сиденье/Время с начала игры/
Let Flt[3]=0  //Прошлое время с начала игры
Let Flt[4]=-1 //разница во времени игры
Let Flt[5]=-1 //прошлое время потока
Let Flt[7]=0 //текущее время потока


Label CHECK
CompareOwnerWithEx 0,1,CAR_IN,CAR_OUT
//Human_GetSeatIdx 0,2
//If Flt[2]=-1,CAR_OUT,CAR_IN

Label CAR_IN
If Flt[1]=0,-,CHECK
CityMusic_Off
Wait 500
CommandBlock 1
Stream_Create 0,"sounds\music\fireradio.ogg"
Stream_SetLoop 0,1
Stream_FadeVol 0,1,0,0
Stream_SetPos 0,7
Stream_Play 0
Stream_FadeVol 0,1,1,1
Let Flt[1]=1
CommandBlock 0
GoTo CHECK

Label CAR_OUT
If Flt[1]=1,-1,CHECK
Stream_GetPos 0,7
Stream_FadeVol 0,1,0,0
Stream_Pause 0
Stream_Destroy 0
CityMusic_On
Let Flt[1]=0
GoTo CHECK

[свернуть]

Позже обновлю остальные версии скрипта.

Abradox 12.10.2020 12:38

Цитата:

Сообщение от KlassenAS (Сообщение 12463)
Abradox, родную мафиозную музыку я в скрипт вписал. Первая радиостанция будет.
Какие планы у нас дальше?

Я думаю, что нужно добавить радиостанции с музыкой из ремейка Мафии.

Kaiser 12.10.2020 19:58

2 KlassenAS

Спасибо, ты мозг! Давай М4 сделаем))

Firefox3860 12.10.2020 20:10

KlassenAS, Что, терперь вообще без багов? Не включется само при загрузке? Но теперь получается, что когда ты не в машине, радио останавливает эфир, так?

Цитата:

Сообщение от Abradox (Сообщение 12475)
Я думаю, что нужно добавить радиостанции с музыкой из ремейка Мафии.

Я достал из М1DE файлы музыки на радио (скачал выдернутую из стима невзломанную игру, она не запускается, но файлы на месте). Могу отобрать оттуда записи и распределить их по 3-м оставшимся станциям. Или по по 2-м, чтобы одну станцию оставить для какой-то другой музыки, как лучше? Займусь, когда время будет.

Цитата:

Сообщение от Kaiser (Сообщение 12483)
Давай М4 сделаем))

хехе, "сделаем" )))

Abradox 12.10.2020 23:21

Цитата:

Сообщение от Firefox3860 (Сообщение 12484)
Я достал из М1DE файлы музыки на радио (скачал выдернутую из стима невзломанную игру, она не запускается, но файлы на месте). Могу отобрать оттуда записи и распределить их по 3-м оставшимся станциям. Или по по 2-м, чтобы одну станцию оставить для какой-то другой музыки, как лучше? Займусь, когда время будет.

Сколько радиостанций в M1DE? Делай их столько же сколько их там. Оставшуюся радиостанцию забьем другой музыкой того времени.

KlassenAS 13.10.2020 09:47

Цитата:

Сообщение от Kaiser (Сообщение 12483)
2 KlassenAS

Спасибо, ты мозг! Давай М4 сделаем))

Сколько там стоит купить права на франшизу?
Ты ведь имел в виду игру, а не карабин М4? :D
Цитата:

Сообщение от Abradox (Сообщение 12487)
Сколько радиостанций в M1DE? Делай их столько же сколько их там. Оставшуюся радиостанцию забьем другой музыкой того времени.

Когда скрипт будет полностью отлажен, нет проблем масштабировать его под любое количество радиостанций.
Не обязательно забивать все 4 станции, можно урезать до 3 или расширить до 1024 )
Правда, я пока успел переделать только версию 1.0, 1.1 и 1.2
Так же, нашёл мелкую ошибку в переключении радиостанций, исправил.
С версией 4х10 дела обстоят сложнее, там нюансов больше, ещё не закончил переделку скрипта.
Для личного пользования потом думаю себе сделать версию, в которой будет музыка из оригинала, радио из ремейка, из мафии2, из мафии3, пара кастомных плейлистов с рок-н-роллом типа AC/DC, и ссылочка на реальное "джойрадио".
Цитата:

Сообщение от Firefox3860 (Сообщение 12484)
KlassenAS, Что, теперь вообще без багов? Не включится само при загрузке? Но теперь получается, что когда ты не в машине, радио останавливает эфир, так?

Да, благодаря запоминанию времени трека получается, как будто поставили на паузу.
Вообще, если бы была функция, позволяющая узнать продолжительность трека, можно было бы заморочиться, и реализовать пропуск части радиоэфира, пока находишься не в машине, засекать время вне машины и перематывать на это время трек, если нужно, переключать на следующий и перематывать остаток и всё в таком роде.
Но такой функции нет )

Abradox 13.10.2020 12:38

Мне хотелось бы так: музыка из Мафии, радиостанции из M1DE, папка куда можно кидать свои свою музыку.
Есть возможность кинуть в папку свою музыку и ничего никуда не прописывать вручную?

Firefox3860 13.10.2020 13:15

Цитата:

Сообщение от Abradox (Сообщение 12487)
Сколько радиостанций в M1DE? Делай их столько же сколько их там.

Не знаю, все записи свалены в одну кучу. Там много записей с разговорами, если их убрать, то музыки на 2 станции должно хватить. Тогда как раз одна свободная останется.
Цитата:

Сообщение от Abradox (Сообщение 12498)
Есть возможность кинуть в папку свою музыку и ничего никуда не прописывать вручную?

Да, но имена у файлов придётся изменить под заданные скриптом.

Abradox 13.10.2020 13:35

это проще, чем прописывать в скрипте названия музыки.

KlassenAS 13.10.2020 14:29

Итак, товарищи радиолюбители!
Принимайте обновлённые версии скриптов:

Ver. 1.1 Аналог скрипта для Kaiser но с тремя радиостанциями.

Развернуть для просмотра

Код:

//Radio Script Ver. 1.1 13-10-2020 By KlassenAS
//Три радиостанции, на каждой один трек.
//Радиостанции переключаются. Также радио можно выключить.
//Поле окончания трек сбрасывается на начало.
//Этот скрипт хорош, если у Вас файл с длиннющей записью реального либо фейкового радиоэфира.
Dim_Act 1
Dim_Flt 13
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления


Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //номер радиостанции 0-2
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье
Let Flt[8]=0
Let Flt[9]=0
Let Flt[10]=0 //время потока 0
Let Flt[11]=0 //время потока 1
Let Flt[12]=0 //время потока 2



Label CHECK
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Wait 500
CommandBlock 1

        Label RADIO00CREATE
        Stream_Create 0,"radio\radio00.mp3"
        Stream_SetLoop 0,1
        Stream_Fadevol 0,1,0,0
        Stream_SetPos 0,10
        Stream_Play 0
        If Flt[3]=0,-1,RADIO00CREATED
        Let Flt[6]=Flt[0]
        Label RADIO00CREATED

        Label RADIO01CREATE
        Stream_Create 1,"radio\radio01.mp3"
        Stream_SetLoop 1,1
        Stream_Fadevol 1,1,0,0
        Stream_SetPos 1,11
        Stream_Play 1
        If Flt[3]=1,-1,RADIO01CREATED
        Let Flt[6]=Flt[1]
        Label RADIO01CREATED

        Label RADIO02CREATE
        Stream_Create 2,"radio\radio02.mp3"
        Stream_SetLoop 2,1
        Stream_Fadevol 2,1,0,0
        Stream_SetPos 2,12
        Stream_Play 2
        If Flt[3]=2,-1,RADIO02CREATED
        Let Flt[6]=Flt[2]
        Label RADIO02CREATED
       
If Flt[3]>-1,-1,RADIO_OFF
Stream_Fadevol 6,1,1,1
Label RADIO_OFF
Let Flt[4]=1
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
CommandBlock 1

Stream_GetPos 0,10
Stream_Fadevol 0,1,0,0
Stream_Pause 0
Stream_Destroy 0

Stream_GetPos 1,11
Stream_Fadevol 1,1,0,0
Stream_Pause 1
Stream_Destroy 1

Stream_GetPos 2,12
Stream_Fadevol 2,1,0,0
Stream_Pause 2
Stream_Destroy 2

Let Flt[4]=0
CityMusic_On
CommandBlock 0
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_0
        If Flt[3]=-1,-1,CHNGUPTO_1
        Let Flt[6]=Flt[0]

        Label CHNGUPTO_1
        If Flt[3]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[3]=1,-1,RADIOPLUS
        Let Flt[6]=Flt[2]

Label RADIOPLUS
Let Flt[3]=Flt[3]+1
If Flt[3]>2,-1,CHANGEDUP
Let Flt[3]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_2
        If Flt[3]=-1,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[3]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[3]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[3]=Flt[3]-1
If Flt[3]=-1,RADIO_OFF_DOWN,-1
If Flt[3]<-1,-1,CHANGEDDOWN
Let Flt[3]=2
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY

[свернуть]


Ver. 1.2 Для реальных радиостанций.
Здесь лишь исправил ошибку с переключением.

Развернуть для просмотра

Код:

//Radio Script Ver. 1.2 13-10-2020 By KlassenAS
//Три радиостанции, каждой можно присвоить ссылку на поток реального интернет-радио.
//При старте миссии игра зависнет нанесколько секунд
//Это нормально, т. к. игра лезет в интернет, чтобы загрузить аудиопоток.
//Радиостанции переключаются. Также радио можно выключить.
Dim_Act 1
Dim_Flt 8
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления


Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //номер радиостанции 0-2
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье



Stream_Create 0,"http://airtime.joyradio.cc:8000/airtime_192.mp3"
Stream_Fadevol 0,1,0,0

Stream_Create 1,"radio\radio01.mp3"
Stream_Fadevol 1,1,0,0

Stream_Create 2,"radio\radio02.mp3"
Stream_Fadevol 2,1,0,0

Let Flt[6]=Flt[0]



Label CHECK
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Let Flt[4]=1
Wait 500
CommandBlock 1
If Flt[3]>-1,-1,RADIO_OFF
Stream_Fadevol 0,1,0,0
Stream_Play 0
Stream_Fadevol 1,1,0,0
Stream_Play 1
Stream_Fadevol 2,1,0,0
Stream_Play 2
Stream_Fadevol 6,1,1,1
Label RADIO_OFF
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
Stream_Fadevol 6,1,0,0
Stream_Pause 0
Stream_Pause 1
Stream_Pause 2
Let Flt[4]=0
CityMusic_On
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_0
        If Flt[3]=-1,-1,CHNGUPTO_1
        Let Flt[6]=Flt[0]

        Label CHNGUPTO_1
        If Flt[3]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[3]=1,-1,RADIOPLUS
        Let Flt[6]=Flt[2]
       
Label RADIOPLUS
Let Flt[3]=Flt[3]+1
If Flt[3]>2,-1,CHANGEDUP
Let Flt[3]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_2
        If Flt[3]=-1,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[3]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[3]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[3]=Flt[3]-1
If Flt[3]=-1,RADIO_OFF_DOWN,-1
If Flt[3]<-1,-1,CHANGEDDOWN
Let Flt[3]=2
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<10,2222,-1
GoTo CHECKPLAY

[свернуть]


Ver. 2.0
Она же 4х10.
Пришлось хорошенько перелопатить, чтобы запоминание/восстановление позиций потоков и номеров треков не конфликтовало с отслеживанием окончания трека и рандомизацией воспроизведения.

Развернуть для просмотра

Код:

//Radio Script Ver. 2.0 13-10-2020 By KlassenAS
//Четыре радиостанции, по 10 треков на каждой
//Радиостанции переключаются. Также радио можно выключить.
//При старте на каждой радиостанции случайным образом
//начинает играть один из 10 треков.
//По окончании трека, следующий выбирается так же, случайным образом.

Dim_Act 1
Dim_Flt 20
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления



Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //поток 03
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье/Время с начала игры/текущее время потока/
Let Flt[8]=0 //Прошлое время с начала игры
Let Flt[9]=0 //номер радиостанции 0-3
Let Flt[10]=-1 //рандом для radio/разница во времени игры
Let Flt[11]=-1 //трек на radio00
Let Flt[12]=-1 //трек на radio01
Let Flt[13]=-1 //трек на radio02
Let Flt[14]=-1 //трек на radio03
Let Flt[15]=0 //прошлое время потока 0
Let Flt[16]=0 //прошлое время потока 1
Let Flt[17]=0 //прошлое время потока 2
Let Flt[18]=0 //прошлое время потока 3
Let Flt[19]=0 //для перехода на следующий трек

Rnd 11,10
Rnd 12,10
Rnd 13,10
Rnd 14,10

GoTo CHECK



Label RADIOCREATE

Label RADIO00CREATE
CommandBlock 1

        Label TRCK0000
        If Flt[11]=0,-1,TRCK0001
        Stream_Create 0,"radio\radio 00 - 00.mp3"
        GoTo RADIO00CREATED

        Label TRCK0001
        If Flt[11]=1,-1,TRCK0002
        Stream_Create 0,"radio\radio 00 - 01.mp3"
        GoTo RADIO00CREATED

        Label TRCK0002
        If Flt[11]=2,-1,TRCK0003
        Stream_Create 0,"radio\radio 00 - 02.mp3"
        GoTo RADIO00CREATED       

        Label TRCK0003
        If Flt[11]=3,-1,TRCK0004
        Stream_Create 0,"radio\radio 00 - 03.mp3"
        GoTo RADIO00CREATED

        Label TRCK0004
        If Flt[11]=4,-1,TRCK0005
        Stream_Create 0,"radio\radio 00 - 04.mp3"
        GoTo RADIO00CREATED

        Label TRCK0005
        If Flt[11]=5,-1,TRCK0006
        Stream_Create 0,"radio\radio 00 - 05.mp3"
        GoTo RADIO00CREATED

        Label TRCK0006
        If Flt[11]=6,-1,TRCK0007
        Stream_Create 0,"radio\radio 00 - 06.mp3"
        GoTo RADIO00CREATED

        Label TRCK0007
        If Flt[11]=7,-1,TRCK0008
        Stream_Create 0,"radio\radio 00 - 07.mp3"
        GoTo RADIO00CREATED

        Label TRCK0008
        If Flt[11]=8,-1,TRCK0009
        Stream_Create 0,"radio\radio 00 - 08.mp3"
        GoTo RADIO00CREATED

        Label TRCK0009
        If Flt[11]=9,-1,RADIO00CREATED
        Stream_Create 0,"radio\radio 00 - 09.mp3"
        GoTo RADIO00CREATED

Label RADIO00CREATED
Stream_SetPos 0,15
CommandBlock 0
If Flt[9]=0,-1,ISREPLAY0
Let Flt[6]=Flt[0]
Label ISREPLAY0
If Flt[19]=1,REPLAY0,-1


Label RADIO01CREATE
CommandBlock 1

        Label TRCK0100
        If Flt[12]=0,-1,TRCK0101
        Stream_Create 1,"radio\radio 01 - 00.mp3"
        GoTo RADIO01CREATED

        Label TRCK0101
        If Flt[12]=1,-1,TRCK0102
        Stream_Create 1,"radio\radio 01 - 01.mp3"
        GoTo RADIO01CREATED

        Label TRCK0102
        If Flt[12]=2,-1,TRCK0103
        Stream_Create 1,"radio\radio 01 - 02.mp3"
        GoTo RADIO01CREATED       

        Label TRCK0103
        If Flt[12]=3,-1,TRCK0104
        Stream_Create 1,"radio\radio 01 - 03.mp3"
        GoTo RADIO01CREATED

        Label TRCK0104
        If Flt[12]=4,-1,TRCK0105
        Stream_Create 1,"radio\radio 01 - 04.mp3"
        GoTo RADIO01CREATED

        Label TRCK0105
        If Flt[12]=5,-1,TRCK0106
        Stream_Create 1,"radio\radio 01 - 05.mp3"
        GoTo RADIO01CREATED

        Label TRCK0106
        If Flt[12]=6,-1,TRCK0107
        Stream_Create 1,"radio\radio 01 - 06.mp3"
        GoTo RADIO01CREATED

        Label TRCK0107
        If Flt[12]=7,-1,TRCK0108
        Stream_Create 1,"radio\radio 01 - 07.mp3"
        GoTo RADIO01CREATED

        Label TRCK0108
        If Flt[12]=8,-1,TRCK0109
        Stream_Create 1,"radio\radio 01 - 08.mp3"
        GoTo RADIO01CREATED

        Label TRCK0109
        If Flt[12]=9,-1,RADIO01CREATED
        Stream_Create 1,"radio\radio 01 - 09.mp3"
        GoTo RADIO01CREATED

Label RADIO01CREATED
Stream_SetPos 1,16
CommandBlock 0
If Flt[9]=1,-1,ISREPLAY1
Let Flt[6]=Flt[1]
Label ISREPLAY1
If Flt[19]=1,REPLAY1,-1


Label RADIO02CREATE
CommandBlock 1

        Label TRCK0200
        If Flt[13]=0,-1,TRCK0201
        Stream_Create 2,"radio\radio 02 - 00.mp3"
        GoTo RADIO02CREATED

        Label TRCK0201
        If Flt[13]=1,-1,TRCK0202
        Stream_Create 2,"radio\radio 02 - 01.mp3"
        GoTo RADIO02CREATED

        Label TRCK0202
        If Flt[13]=2,-1,TRCK0203
        Stream_Create 2,"radio\radio 02 - 02.mp3"
        GoTo RADIO02CREATED

        Label TRCK0203
        If Flt[13]=3,-1,TRCK0204
        Stream_Create 2,"radio\radio 02 - 03.mp3"
        GoTo RADIO02CREATED

        Label TRCK0204
        If Flt[13]=4,-1,TRCK0205
        Stream_Create 2,"radio\radio 02 - 04.mp3"
        GoTo RADIO02CREATED

        Label TRCK0205
        If Flt[13]=5,-1,TRCK0206
        Stream_Create 2,"radio\radio 02 - 05.mp3"
        GoTo RADIO02CREATED

        Label TRCK0206
        If Flt[13]=6,-1,TRCK0207
        Stream_Create 2,"radio\radio 02 - 06.mp3"
        GoTo RADIO02CREATED

        Label TRCK0207
        If Flt[13]=7,-1,TRCK0208
        Stream_Create 2,"radio\radio 02 - 07.mp3"
        GoTo RADIO02CREATED

        Label TRCK0208
        If Flt[13]=8,-1,TRCK0209
        Stream_Create 2,"radio\radio 02 - 08.mp3"
        GoTo RADIO02CREATED

        Label TRCK0209
        If Flt[13]=9,-1,RADIO02CREATED
        Stream_Create 2,"radio\radio 02 - 09.mp3"
        GoTo RADIO02CREATED

Label RADIO02CREATED
Stream_SetPos 2,17
CommandBlock 0
If Flt[9]=2,-1,ISREPLAY2
Let Flt[6]=Flt[2]
Label ISREPLAY2
If Flt[19]=1,REPLAY2,-1


Label RADIO03CREATE
CommandBlock 1
        Label TRCK0300
        If Flt[14]=0,-1,TRCK0301
        Stream_Create 3,"radio\radio 03 - 00.mp3"
        GoTo RADIO03CREATED

        Label TRCK0301
        If Flt[14]=1,-1,TRCK0302
        Stream_Create 3,"radio\radio 03 - 01.mp3"
        GoTo RADIO03CREATED

        Label TRCK0302
        If Flt[14]=2,-1,TRCK0303
        Stream_Create 3,"radio\radio 03 - 02.mp3"
        GoTo RADIO03CREATED

        Label TRCK0303
        If Flt[14]=3,-1,TRCK0304
        Stream_Create 3,"radio\radio 03 - 03.mp3"
        GoTo RADIO03CREATED

        Label TRCK0304
        If Flt[14]=4,-1,TRCK0305
        Stream_Create 3,"radio\radio 03 - 04.mp3"
        GoTo RADIO03CREATED

        Label TRCK0305
        If Flt[14]=5,-1,TRCK0306
        Stream_Create 3,"radio\radio 03 - 05.mp3"
        GoTo RADIO03CREATED

        Label TRCK0306
        If Flt[14]=6,-1,TRCK0307
        Stream_Create 3,"radio\radio 03 - 06.mp3"
        GoTo RADIO03CREATED

        Label TRCK0307
        If Flt[14]=7,-1,TRCK0308
        Stream_Create 3,"radio\radio 03 - 07.mp3"
        GoTo RADIO03CREATED

        Label TRCK0308
        If Flt[14]=8,-1,TRCK0309
        Stream_Create 3,"radio\radio 03 - 08.mp3"
        GoTo RADIO03CREATED

        Label TRCK0309
        If Flt[14]=9,-1,RADIO03CREATED
        Stream_Create 3,"radio\radio 03 - 09.mp3"
        GoTo RADIO03CREATED

Label RADIO03CREATED
Stream_SetPos 3,18
CommandBlock 0
If Flt[9]=3,-1,ISREPLAY3
Let Flt[6]=Flt[3]
Label ISREPLAY3
If Flt[19]=1,REPLAY3,-1

GoTo RADIOCREATED



Label CHECK
CommandBlock 1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Wait 500
GoTo RADIOCREATE
Label RADIOCREATED
CommandBlock 1
Stream_Fadevol 0,1,0,0
Stream_Play 0
Stream_Fadevol 1,1,0,0
Stream_Play 1
Stream_Fadevol 2,1,0,0
Stream_Play 2
Stream_Fadevol 3,1,0,0
Stream_Play 3
If Flt[9]>-1,-1,RADIO_OFF
Stream_FadeVol 6,1,1,1
Label RADIO_OFF
Let Flt[4]=1
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
CommandBlock 1

Stream_GetPos 0,15
Stream_Fadevol 0,1,0,0
Stream_Pause 0
Stream_Destroy 0

Stream_GetPos 1,16
Stream_Fadevol 1,1,0,0
Stream_Pause 1
Stream_Destroy 1

Stream_GetPos 2,17
Stream_Fadevol 2,1,0,0
Stream_Pause 2
Stream_Destroy 2

Stream_GetPos 3,18
Stream_Fadevol 3,1,0,0
Stream_Pause 3
Stream_Destroy 3

Let Flt[4]=0
CityMusic_On
CommandBlock 0
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_0
        If Flt[9]=-1,-1,CHNGUPTO_1
        Let Flt[6]=Flt[0]

        Label CHNGUPTO_1
        If Flt[9]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[9]=1,-1,CHNGUPTO_3
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_3
        If Flt[9]=2,-1,RADIOPLUS
        Let Flt[6]=Flt[3]

       
Label RADIOPLUS
Let Flt[9]=Flt[9]+1
If Flt[9]>3,-1,CHANGEDUP
Let Flt[9]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<5,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_3
        If Flt[9]=-1,-1,CHNGDWNTO_2
        Let Flt[6]=Flt[3]
        GoTo RADIOMINUS

        Label CHNGDWNTO_2
        If Flt[9]=3,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[9]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[9]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[9]=Flt[9]-1
If Flt[9]=-1,RADIO_OFF_DOWN,-1
If Flt[9]<-1,-1,CHANGEDDOWN
Let Flt[9]=3
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<5,2222,-1
GoTo CHECKPLAY



Label POSITION
If Flt[4]=0,CHECK_IN_CAR,-1
GetGameTime 7
Let Flt[10]=Flt[7]-Flt[8]
If Flt[10]<500,CHECK_IN_CAR,-1
Let Flt[8]=Flt[7]

        Label GETPOS0
        Stream_GetPos 0,7
        If Flt[7]=Flt[15],RADIO0END,-1
        Let Flt[15]=Flt[7]
        GoTo GETPOS1
        Label RADIO0END
        Stream_Fadevol 0,1,0,0
        Stream_Pause 0
        Stream_Destroy 0
        Label RAND0
        Rnd 10,10
        If Flt[11]=Flt[10],RAND0,-1
        Let Flt[11]=Flt[10]
        Let Flt[19]=1
        Let Flt[15]=0
        GoTo RADIO00CREATE
        Label REPLAY0
        CommandBlock 1
        Stream_Fadevol 0,1,0,0
        Stream_Play 0
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=0,-1,GETPOS1
        Let Flt[6]=Flt[0]
        Stream_Fadevol 0,1,1,1

        Label GETPOS1
        Stream_GetPos 1,7
        If Flt[7]=Flt[16],RADIO1END,-1
        Let Flt[16]=Flt[7]
        GoTo GETPOS2
        Label RADIO1END
        Stream_Fadevol 1,1,0,0
        Stream_Pause 1
        Stream_Destroy 1
        Label RAND1
        Rnd 10,10
        If Flt[12]=Flt[10],RAND1,-1
        Let Flt[12]=Flt[10]
        Let Flt[19]=1
        Let Flt[16]=0
        GoTo RADIO01CREATE
        Label REPLAY1
        CommandBlock 1
        Stream_Fadevol 1,1,0,0
        Stream_Play 1
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=1,-1,GETPOS2
        Let Flt[6]=Flt[1]
        Stream_Fadevol 1,1,1,1

        Label GETPOS2
        Stream_GetPos 2,7
        If Flt[7]=Flt[17],RADIO2END,-1
        Let Flt[17]=Flt[7]
        GoTo GETPOS3
        Label RADIO2END
        Stream_Fadevol 2,1,0,0
        Stream_Pause 2
        Stream_Destroy 2
        Label RAND2
        Rnd 10,10
        If Flt[13]=Flt[10],RAND2,-1
        Let Flt[13]=Flt[10]
        Let Flt[19]=1
        Let Flt[17]=0
        GoTo RADIO02CREATE
        Label REPLAY2
        CommandBlock 1
        Stream_Fadevol 2,1,0,0
        Stream_Play 2
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=2,-1,GETPOS3
        Let Flt[6]=Flt[2]
        Stream_Fadevol 2,1,1,1

        Label GETPOS3
        Stream_GetPos 3,7
        If Flt[7]=Flt[18],RADIO3END,-1
        Let Flt[18]=Flt[7]
        GoTo CHECK_IN_CAR
        Label RADIO3END
        Stream_Fadevol 3,1,0,0
        Stream_Pause 3
        Stream_Destroy 3
        Label RAND3
        Rnd 10,10
        If Flt[14]=Flt[10],RAND3,-1
        Let Flt[14]=Flt[10]
        Let Flt[19]=1
        Let Flt[18]=0
        GoTo RADIO03CREATE
        Label REPLAY3
        CommandBlock 1
        Stream_Fadevol 3,1,0,0
        Stream_Play 3
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=3,-1,CHECK_IN_CAR
        Let Flt[6]=Flt[3]
        Stream_Fadevol 3,1,1,1

GoTo CHECK_IN_CAR

[свернуть]


Цитата:

Сообщение от Abradox (Сообщение 12498)
Мне хотелось бы так: музыка из Мафии, радиостанции из M1DE, папка куда можно кидать свои свою музыку.
Есть возможность кинуть в папку свою музыку и ничего никуда не прописывать вручную?

Тут неудобство в том, что в скриптах нет функций, с помощью которых можно было бы просканировать папку и получить список имён лежащих в ней файлов.
Так что все имена файлов и их количество записываются в самом скрипте.
Цитата:

Сообщение от Abradox (Сообщение 12504)
это проще, чем прописывать в скрипте названия музыки.

Как по мне, какая разница, открыв скрипт в блокноте, копипастить названия из скрипта в файлы или из файлов в скрипт?
То на то и выходит, в итоге )

KlassenAS 13.10.2020 14:31

Вложений: 1
Да простят меня админы за два сообщения подряд!
Но в одно сообщение всё не поместилось!
В качестве доказательства прикрепляю скриншот.

Ver. 2.1 для Abradox, в разработке:

Развернуть для просмотра

Код:

//Radio Script Ver. 2.1 13-10-2020 By KlassenAS For Abradox
//Четыре радиостанции, более 10 треков на каждой
//Первая радиостанция с родной музыкой Mafia
//Радиостанции переключаются. Также радио можно выключить.
//При старте на каждой радиостанции случайным образом
//начинает играть один из треков.
//По окончании трека, следующий выбирается так же, случайным образом.

Dim_Act 1
Dim_Flt 20
GetActivePlayer 0

//Удалить для использования в scene2.bin,
//Оставить для использования с патчем от GOLOD55
//Начало удаления
Human_GetProperty 0,4,Energy
If Flt[4]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on
//Конец удаления



Let Flt[0]=0 //поток 00
Let Flt[1]=0 //поток 01
Let Flt[2]=0 //поток 02
Let Flt[3]=0 //поток 03
Let Flt[4]=0 //логика
Let Flt[5]=0 //Нажатие клавиш вперёд1 и назад1
Let Flt[6]=0 //Последний активный поток
Let Flt[7]=0 //сиденье/Время с начала игры/текущее время потока/
Let Flt[8]=0 //Прошлое время с начала игры
Let Flt[9]=0 //номер радиостанции 0-3
Let Flt[10]=-1 //рандом для radio/разница во времени игры
Let Flt[11]=-1 //трек на radio00
Let Flt[12]=-1 //трек на radio01
Let Flt[13]=-1 //трек на radio02
Let Flt[14]=-1 //трек на radio03
Let Flt[15]=0 //прошлое время потока 0
Let Flt[16]=0 //прошлое время потока 1
Let Flt[17]=0 //прошлое время потока 2
Let Flt[18]=0 //прошлое время потока 3
Let Flt[19]=0 //для перехода на следующий трек

Rnd 11,27
Rnd 12,10
Rnd 13,10
Rnd 14,10

GoTo CHECK



Label RADIOCREATE

Label RADIO00CREATE
CommandBlock 1

        Label TRCK0000
        If Flt[11]=0,-1,TRCK0001
        Stream_Create 0,"sounds\03_music.wav"
        GoTo RADIO00CREATED

        Label TRCK0001
        If Flt[11]=1,-1,TRCK0002
        Stream_Create 0,"sounds\10_music.wav"
        GoTo RADIO00CREATED

        Label TRCK0002
        If Flt[11]=2,-1,TRCK0003
        Stream_Create 0,"sounds\10_musicin.wav"
        GoTo RADIO00CREATED       

        Label TRCK0003
        If Flt[11]=3,-1,TRCK0004
        Stream_Create 0,"sounds\12_radio.wav"
        GoTo RADIO00CREATED

        Label TRCK0004
        If Flt[11]=4,-1,TRCK0005
        Stream_Create 0,"sounds\13b_music.wav"
        GoTo RADIO00CREATED

        Label TRCK0005
        If Flt[11]=5,-1,TRCK0006
        Stream_Create 0,"sounds\14_Coucou.wav"
        GoTo RADIO00CREATED

        Label TRCK0006
        If Flt[11]=6,-1,TRCK0007
        Stream_Create 0,"sounds\18_radio.wav"
        GoTo RADIO00CREATED

        Label TRCK0007
        If Flt[11]=7,-1,TRCK0008
        Stream_Create 0,"sounds\s_music1.wav"
        GoTo RADIO00CREATED

        Label TRCK0008
        If Flt[11]=8,-1,TRCK0009
        Stream_Create 0,"sounds\s_music2.wav"
        GoTo RADIO00CREATED

        Label TRCK0009
        If Flt[11]=9,-1,TRCK0010
        Stream_Create 0,"sounds\s_music3.wav"
        GoTo RADIO00CREATED

        Label TRCK0010
        If Flt[11]=10,-1,TRCK0011
        Stream_Create 0,"sounds\s_music5.wav"
        GoTo RADIO00CREATED

        Label TRCK0011
        If Flt[11]=11,-1,TRCK0012
        Stream_Create 0,"sounds\music\city_music_01.ogg"
        GoTo RADIO00CREATED

        Label TRCK0012
        If Flt[11]=12,-1,TRCK0013
        Stream_Create 0,"sounds\music\city_music_02.ogg"
        GoTo RADIO00CREATED

        Label TRCK0013
        If Flt[11]=13,-1,TRCK0014
        Stream_Create 0,"sounds\music\city_music_03.ogg"
        GoTo RADIO00CREATED

        Label TRCK0014
        If Flt[11]=14,-1,TRCK0015
        Stream_Create 0,"sounds\music\city_music_04.ogg"
        GoTo RADIO00CREATED

        Label TRCK0015
        If Flt[11]=15,-1,TRCK0016
        Stream_Create 0,"sounds\music\city_music_05.ogg"
        GoTo RADIO00CREATED

        Label TRCK0016
        If Flt[11]=16,-1,TRCK0017
        Stream_Create 0,"sounds\music\city_music_06.ogg"
        GoTo RADIO00CREATED

        Label TRCK0017
        If Flt[11]=17,-1,TRCK0018
        Stream_Create 0,"sounds\music\city_music_07.ogg"
        GoTo RADIO00CREATED

        Label TRCK0018
        If Flt[11]=18,-1,TRCK0019
        Stream_Create 0,"sounds\music\city_music_08.ogg"
        GoTo RADIO00CREATED

        Label TRCK0019
        If Flt[11]=19,-1,TRCK0020
        Stream_Create 0,"sounds\music\city_music_09.ogg"
        GoTo RADIO00CREATED

        Label TRCK0020
        If Flt[11]=20,-1,TRCK0021
        Stream_Create 0,"sounds\music\city_music_10.ogg"
        GoTo RADIO00CREATED

        Label TRCK0021
        If Flt[11]=21,-1,TRCK0022
        Stream_Create 0,"sounds\music\city_music_11.ogg"
        GoTo RADIO00CREATED

        Label TRCK0022
        If Flt[11]=22,-1,TRCK0023
        Stream_Create 0,"sounds\music\city_music_12.ogg"
        GoTo RADIO00CREATED

        Label TRCK0023
        If Flt[11]=23,-1,TRCK0024
        Stream_Create 0,"sounds\music\city_music_13.ogg"
        GoTo RADIO00CREATED

        Label TRCK0024
        If Flt[11]=24,-1,TRCK0025
        Stream_Create 0,"sounds\music\city_music_15.ogg"
        GoTo RADIO00CREATED

        Label TRCK0025
        If Flt[11]=25,-1,TRCK0026
        Stream_Create 0,"sounds\music\12_scene music.ogg"
        GoTo RADIO00CREATED

        Label TRCK0026
        If Flt[11]=26,-1,RADIO00CREATED
        Stream_Create 0,"sounds\music\mise02-ulicka.ogg"
        GoTo RADIO00CREATED

Label RADIO00CREATED
Stream_SetPos 0,15
CommandBlock 0
If Flt[9]=0,-1,ISREPLAY0
Let Flt[6]=Flt[0]
Label ISREPLAY0
If Flt[19]=1,REPLAY0,-1


Label RADIO01CREATE
CommandBlock 1

        Label TRCK0100
        If Flt[12]=0,-1,TRCK0101
        Stream_Create 1,"radio\radio 01 - 00.mp3"
        GoTo RADIO01CREATED

        Label TRCK0101
        If Flt[12]=1,-1,TRCK0102
        Stream_Create 1,"radio\radio 01 - 01.mp3"
        GoTo RADIO01CREATED

        Label TRCK0102
        If Flt[12]=2,-1,TRCK0103
        Stream_Create 1,"radio\radio 01 - 02.mp3"
        GoTo RADIO01CREATED       

        Label TRCK0103
        If Flt[12]=3,-1,TRCK0104
        Stream_Create 1,"radio\radio 01 - 03.mp3"
        GoTo RADIO01CREATED

        Label TRCK0104
        If Flt[12]=4,-1,TRCK0105
        Stream_Create 1,"radio\radio 01 - 04.mp3"
        GoTo RADIO01CREATED

        Label TRCK0105
        If Flt[12]=5,-1,TRCK0106
        Stream_Create 1,"radio\radio 01 - 05.mp3"
        GoTo RADIO01CREATED

        Label TRCK0106
        If Flt[12]=6,-1,TRCK0107
        Stream_Create 1,"radio\radio 01 - 06.mp3"
        GoTo RADIO01CREATED

        Label TRCK0107
        If Flt[12]=7,-1,TRCK0108
        Stream_Create 1,"radio\radio 01 - 07.mp3"
        GoTo RADIO01CREATED

        Label TRCK0108
        If Flt[12]=8,-1,TRCK0109
        Stream_Create 1,"radio\radio 01 - 08.mp3"
        GoTo RADIO01CREATED

        Label TRCK0109
        If Flt[12]=9,-1,RADIO01CREATED
        Stream_Create 1,"radio\radio 01 - 09.mp3"
        GoTo RADIO01CREATED

Label RADIO01CREATED
Stream_SetPos 1,16
CommandBlock 0
If Flt[9]=1,-1,ISREPLAY1
Let Flt[6]=Flt[1]
Label ISREPLAY1
If Flt[19]=1,REPLAY1,-1


Label RADIO02CREATE
CommandBlock 1

        Label TRCK0200
        If Flt[13]=0,-1,TRCK0201
        Stream_Create 2,"radio\radio 02 - 00.mp3"
        GoTo RADIO02CREATED

        Label TRCK0201
        If Flt[13]=1,-1,TRCK0202
        Stream_Create 2,"radio\radio 02 - 01.mp3"
        GoTo RADIO02CREATED

        Label TRCK0202
        If Flt[13]=2,-1,TRCK0203
        Stream_Create 2,"radio\radio 02 - 02.mp3"
        GoTo RADIO02CREATED

        Label TRCK0203
        If Flt[13]=3,-1,TRCK0204
        Stream_Create 2,"radio\radio 02 - 03.mp3"
        GoTo RADIO02CREATED

        Label TRCK0204
        If Flt[13]=4,-1,TRCK0205
        Stream_Create 2,"radio\radio 02 - 04.mp3"
        GoTo RADIO02CREATED

        Label TRCK0205
        If Flt[13]=5,-1,TRCK0206
        Stream_Create 2,"radio\radio 02 - 05.mp3"
        GoTo RADIO02CREATED

        Label TRCK0206
        If Flt[13]=6,-1,TRCK0207
        Stream_Create 2,"radio\radio 02 - 06.mp3"
        GoTo RADIO02CREATED

        Label TRCK0207
        If Flt[13]=7,-1,TRCK0208
        Stream_Create 2,"radio\radio 02 - 07.mp3"
        GoTo RADIO02CREATED

        Label TRCK0208
        If Flt[13]=8,-1,TRCK0209
        Stream_Create 2,"radio\radio 02 - 08.mp3"
        GoTo RADIO02CREATED

        Label TRCK0209
        If Flt[13]=9,-1,RADIO02CREATED
        Stream_Create 2,"radio\radio 02 - 09.mp3"
        GoTo RADIO02CREATED

Label RADIO02CREATED
Stream_SetPos 2,17
CommandBlock 0
If Flt[9]=2,-1,ISREPLAY2
Let Flt[6]=Flt[2]
Label ISREPLAY2
If Flt[19]=1,REPLAY2,-1


Label RADIO03CREATE
CommandBlock 1
        Label TRCK0300
        If Flt[14]=0,-1,TRCK0301
        Stream_Create 3,"radio\radio 03 - 00.mp3"
        GoTo RADIO03CREATED

        Label TRCK0301
        If Flt[14]=1,-1,TRCK0302
        Stream_Create 3,"radio\radio 03 - 01.mp3"
        GoTo RADIO03CREATED

        Label TRCK0302
        If Flt[14]=2,-1,TRCK0303
        Stream_Create 3,"radio\radio 03 - 02.mp3"
        GoTo RADIO03CREATED

        Label TRCK0303
        If Flt[14]=3,-1,TRCK0304
        Stream_Create 3,"radio\radio 03 - 03.mp3"
        GoTo RADIO03CREATED

        Label TRCK0304
        If Flt[14]=4,-1,TRCK0305
        Stream_Create 3,"radio\radio 03 - 04.mp3"
        GoTo RADIO03CREATED

        Label TRCK0305
        If Flt[14]=5,-1,TRCK0306
        Stream_Create 3,"radio\radio 03 - 05.mp3"
        GoTo RADIO03CREATED

        Label TRCK0306
        If Flt[14]=6,-1,TRCK0307
        Stream_Create 3,"radio\radio 03 - 06.mp3"
        GoTo RADIO03CREATED

        Label TRCK0307
        If Flt[14]=7,-1,TRCK0308
        Stream_Create 3,"radio\radio 03 - 07.mp3"
        GoTo RADIO03CREATED

        Label TRCK0308
        If Flt[14]=8,-1,TRCK0309
        Stream_Create 3,"radio\radio 03 - 08.mp3"
        GoTo RADIO03CREATED

        Label TRCK0309
        If Flt[14]=9,-1,RADIO03CREATED
        Stream_Create 3,"radio\radio 03 - 09.mp3"
        GoTo RADIO03CREATED

Label RADIO03CREATED
Stream_SetPos 3,18
CommandBlock 0
If Flt[9]=3,-1,ISREPLAY3
Let Flt[6]=Flt[3]
Label ISREPLAY3
If Flt[19]=1,REPLAY3,-1

GoTo RADIOCREATED



Label CHECK
CommandBlock 1
GoTo POSITION
Label CHECK_IN_CAR
CommandBlock 0
Human_GetSeatIdx 0,7
If Flt[7]=-1,CAR_OUT,CAR_IN



Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
If Flt[4]=0,-,CHECK
CityMusic_Off
Wait 500
GoTo RADIOCREATE
Label RADIOCREATED
CommandBlock 1
Stream_Fadevol 0,1,0,0
Stream_Play 0
Stream_Fadevol 1,1,0,0
Stream_Play 1
Stream_Fadevol 2,1,0,0
Stream_Play 2
Stream_Fadevol 3,1,0,0
Stream_Play 3
If Flt[9]>-1,-1,RADIO_OFF
Stream_FadeVol 6,1,1,1
Label RADIO_OFF
Let Flt[4]=1
CommandBlock 0
GoTo CHECK



Label CAR_OUT
If Flt[4]=1,-1,CHECK
CommandBlock 1

Stream_GetPos 0,15
Stream_Fadevol 0,1,0,0
Stream_Pause 0
Stream_Destroy 0

Stream_GetPos 1,16
Stream_Fadevol 1,1,0,0
Stream_Pause 1
Stream_Destroy 1

Stream_GetPos 2,17
Stream_Fadevol 2,1,0,0
Stream_Pause 2
Stream_Destroy 2

Stream_GetPos 3,18
Stream_Fadevol 3,1,0,0
Stream_Pause 3
Stream_Destroy 3

Let Flt[4]=0
CityMusic_On
CommandBlock 0
GoTo CHECK



Label RADIO_UP
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGUPTO_0
        If Flt[9]=-1,-1,CHNGUPTO_1
        Let Flt[6]=Flt[0]

        Label CHNGUPTO_1
        If Flt[9]=0,-1,CHNGUPTO_2
        Let Flt[6]=Flt[1]
        GoTo RADIOPLUS
       
        Label CHNGUPTO_2
        If Flt[9]=1,-1,CHNGUPTO_3
        Let Flt[6]=Flt[2]
        GoTo RADIOPLUS       

        Label CHNGUPTO_3
        If Flt[9]=2,-1,RADIOPLUS
        Let Flt[6]=Flt[3]

       
Label RADIOPLUS
Let Flt[9]=Flt[9]+1
If Flt[9]>3,-1,CHANGEDUP
Let Flt[9]=-1
GoTo RADIO_OFF_UP
Label CHANGEDUP
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_UP
CommandBlock 0

Let Flt[7]=0
Label 3333
Ctrl_Read 5,UP1
If Flt[5]=1,-1,READ_DOWN
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<5,3333,-1
GoTo READ_DOWN



Label RADIO_DOWN
CommandBlock 1
Stream_Fadevol 6,1,0,0

        Label CHNGDWNTO_3
        If Flt[9]=-1,-1,CHNGDWNTO_2
        Let Flt[6]=Flt[3]
        GoTo RADIOMINUS

        Label CHNGDWNTO_2
        If Flt[9]=3,-1,CHNGDWNTO_1
        Let Flt[6]=Flt[2]
        GoTo RADIOMINUS

        Label CHNGDWNTO_1
        If Flt[9]=2,-1,CHNGDWNTO_0
        Let Flt[6]=Flt[1]
        GoTo RADIOMINUS
       
        Label CHNGDWNTO_0
        If Flt[9]=1,-1,RADIOMINUS
        Let Flt[6]=Flt[0]
       
Label RADIOMINUS
Let Flt[9]=Flt[9]-1
If Flt[9]=-1,RADIO_OFF_DOWN,-1
If Flt[9]<-1,-1,CHANGEDDOWN
Let Flt[9]=3
Label CHANGEDDOWN
Stream_Fadevol 6,1,1,1
Label RADIO_OFF_DOWN
CommandBlock 0

Let Flt[7]=0
Label 2222
Ctrl_Read 5,DOWN1
If Flt[5]=1,-1,CHECKPLAY
Wait 200
Let Flt[7]=Flt[7]+1
If Flt[7]<5,2222,-1
GoTo CHECKPLAY



Label POSITION
If Flt[4]=0,CHECK_IN_CAR,-1
GetGameTime 7
Let Flt[10]=Flt[7]-Flt[8]
If Flt[10]<500,CHECK_IN_CAR,-1
Let Flt[8]=Flt[7]

        Label GETPOS0
        Stream_GetPos 0,7
        If Flt[7]=Flt[15],RADIO0END,-1
        Let Flt[15]=Flt[7]
        GoTo GETPOS1
        Label RADIO0END
        Stream_Fadevol 0,1,0,0
        Stream_Pause 0
        Stream_Destroy 0
        Label RAND0
        Rnd 10,27
        If Flt[11]=Flt[10],RAND0,-1
        Let Flt[11]=Flt[10]
        Let Flt[19]=1
        Let Flt[15]=0
        GoTo RADIO00CREATE
        Label REPLAY0
        CommandBlock 1
        Stream_Fadevol 0,1,0,0
        Stream_Play 0
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=0,-1,GETPOS1
        Let Flt[6]=Flt[0]
        Stream_Fadevol 0,1,1,1

        Label GETPOS1
        Stream_GetPos 1,7
        If Flt[7]=Flt[16],RADIO1END,-1
        Let Flt[16]=Flt[7]
        GoTo GETPOS2
        Label RADIO1END
        Stream_Fadevol 1,1,0,0
        Stream_Pause 1
        Stream_Destroy 1
        Label RAND1
        Rnd 10,10
        If Flt[12]=Flt[10],RAND1,-1
        Let Flt[12]=Flt[10]
        Let Flt[19]=1
        Let Flt[16]=0
        GoTo RADIO01CREATE
        Label REPLAY1
        CommandBlock 1
        Stream_Fadevol 1,1,0,0
        Stream_Play 1
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=1,-1,GETPOS2
        Let Flt[6]=Flt[1]
        Stream_Fadevol 1,1,1,1

        Label GETPOS2
        Stream_GetPos 2,7
        If Flt[7]=Flt[17],RADIO2END,-1
        Let Flt[17]=Flt[7]
        GoTo GETPOS3
        Label RADIO2END
        Stream_Fadevol 2,1,0,0
        Stream_Pause 2
        Stream_Destroy 2
        Label RAND2
        Rnd 10,10
        If Flt[13]=Flt[10],RAND2,-1
        Let Flt[13]=Flt[10]
        Let Flt[19]=1
        Let Flt[17]=0
        GoTo RADIO02CREATE
        Label REPLAY2
        CommandBlock 1
        Stream_Fadevol 2,1,0,0
        Stream_Play 2
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=2,-1,GETPOS3
        Let Flt[6]=Flt[2]
        Stream_Fadevol 2,1,1,1

        Label GETPOS3
        Stream_GetPos 3,7
        If Flt[7]=Flt[18],RADIO3END,-1
        Let Flt[18]=Flt[7]
        GoTo CHECK_IN_CAR
        Label RADIO3END
        Stream_Fadevol 3,1,0,0
        Stream_Pause 3
        Stream_Destroy 3
        Label RAND3
        Rnd 10,10
        If Flt[14]=Flt[10],RAND3,-1
        Let Flt[14]=Flt[10]
        Let Flt[19]=1
        Let Flt[18]=0
        GoTo RADIO03CREATE
        Label REPLAY3
        CommandBlock 1
        Stream_Fadevol 3,1,0,0
        Stream_Play 3
        Let Flt[19]=0
        CommandBlock 0
        If Flt[9]=3,-1,CHECK_IN_CAR
        Let Flt[6]=Flt[3]
        Stream_Fadevol 3,1,1,1

GoTo CHECK_IN_CAR

[свернуть]

Abradox 14.10.2020 02:22

Сначала всё было нормально и скрипт работал правильно, потом я стал загружать разные миссии и муызка стала глючить.
Примерно пол секунды муызка играет, следующие пол секунды - тишина, и так постоянно чередуется, как-будто лагает.
Странный глюк, проверял скрипт 2.1

KlassenAS 14.10.2020 09:10

Цитата:

Сообщение от Abradox (Сообщение 12535)
Примерно пол секунды муызка играет, следующие пол секунды - тишина, и так постоянно чередуется, как-будто лагает

Интересно.
А после тишины трек как играл? Как после паузы? Или сначала? Или как будто во время тишины продолжал играть, но не слышно?
Какие миссии ты при этом загружал?

Я так понимаю, что нормально скрипт работал во фрирайде?

Прошёл " невозможно отказаться", "бегущий человек" и "вечеринка с коктейлями".
Подобных проблем не было.
Что было: во время погони радио играло одновременно с драматичной музыкой, которая звучит во время погони. Радио, конечно, можно отключить.
После погони, во время катсцены, когда Сэм дал Тому деньги, радио продолжало играть. Естественно, ведь Том в машине. Радио можно было выключить.
Во время миссий "бегущий человек" и "вечеринка с коктейлями" во время сохранений Том находится в машине. Радио играет, потоки сохраняются, если запороть миссию и загрузиться с сохранения, то эти потоки начинают играть.
Это проблемы естественные и предсказуемые.
А вот такого, как ты описал, не было.
Единственная мысль: а ты для второй, третьей и четвёртой радиостанции файлы в папку положил?
Если нет, то скрипт безуспешно пытался создавать потоки из несуществующих файлов, это и могло привести к подлагиванию.
В скрипте как раз с интервалом в половину секунды идёт проверка, не закончился ли трек, и если он не играет, то поток пересоздаётся.

Abradox 14.10.2020 12:16

Нет, я не положил музыку в папки, но в Фрирайде это не было проблемой, при переключении радиостанций просто была тишина. Надо еще будет потестировать.

Музыка как мне кажется во время тишины не играла.

Firefox3860 14.10.2020 18:01

Покатался я, значит, с музыкой из m1de, и это прекрасно :) Она очень здорово освежает атмосферу, некоторые композиции как будто там и были! :)

Обобщаю. Из 144 аудиозаписей только 48 оказались музыкой. Остальное — разговоры, новостные выпуски и т.д. Их я выкинул. Те 48 композиций я распределил по 2-м станциям (сортировал по своим ощущениям) по 24 на каждую.
Оказалось, что записи там тоже в формате ogg, в mp3 лучше не переделывать — так весят в 2 раза больше. То есть в скрипте надо будет имена им (расширения) подправить. Да и пробелы из имён лучше убрать, чтобы путаницы не было.
Количество композиций в скрипте тоже, соответственно, расширить до 24 на 2 и 3 станциях.

https://mega.nz/file/wz4XjKSa#mp8jMF...AsKjqVAuXO4wv8
100 мб.

Теперь ещё немного по скрипту.
Всё таки настаиваю на использовании для переключения станций кнопок CROUCH1 и JUMP1 вместо UP1 и DOWN1. Я часто езжу на стрелках и wasd попеременно, из-за чего часто ненамеренно переключал радио. И потом — машина так попросту тормозит и разгоняется когда не надо.

На станции citymisic есть создание потоков из wav-файлов. Они почему-то ни разу не запустились. Их выбор отключен сейчас? Всё же считаю, что их вообще надо убрать из скрипта — они для этого не предназначены (за исключением Coucou, непонятно, почему они её как wav сделали).

Ещё предлагаю реализовать задумку с отображением текста при переключении станций, потому что сейчас плохо заметен сам момент переключения. Команда console_addtext. Строки:
252 - "Music"
18970051 - "Turn off the radio"

KlassenAS, я бы всё это сам проделал, но в таком замысловатом скрипте я уже не разберусь :D Так что прошу учесть, когда будешь его ещё допиливать... Это всё, разумеется, про версию 2.1

А ещё, у тебя в notepad'е синтаксис работает, когда ты пишешь вот так, с большими буквами? Просто у меня шаблон настроен только на нижний регистр.

KlassenAS 14.10.2020 18:20

Цитата:

Сообщение от Firefox3860 (Сообщение 12551)
Из 144 аудиозаписей только 48 оказались музыкой. Остальное — разговоры, новостные выпуски и т.д. Их я выкинул. Те 48 композиций я распределил по 2-м станциям (сортировал по своим ощущениям) по 24 на каждую.
Оказалось, что записи там тоже в формате ogg, в mp3 лучше не переделывать — так весят в 2 раза больше. То есть в скрипте надо будет имена им (расширения) подправить. Да и пробелы из имён лучше убрать, чтобы путаницы не было.
Количество композиций в скрипте тоже, соответственно, расширить до 24 на 2 и 3 станциях.

https://mega.nz/file/wz4XjKSa#mp8jMF...AsKjqVAuXO4wv8
100 мб.

Спасибо! Сейчас займусь всем этим делом )

Цитата:

Сообщение от Firefox3860 (Сообщение 12551)
Теперь ещё немного по скрипту.
Всё таки настаиваю на использовании для переключения станций кнопок CROUCH1 и JUMP1 вместо UP1 и DOWN1. Я часто езжу на стрелках и wasd попеременно, из-за чего часто ненамеренно переключал радио. И потом — машина так попросту тормозит и разгоняется когда не надо.

Ладно, уговорил, сделаю на альтернативный присед и прыжок )

Цитата:

Сообщение от Firefox3860 (Сообщение 12551)
На станции citymisic есть создание потоков из wav-файлов. Они почему-то ни разу не запустились. Их выбор отключен сейчас? Всё же считаю, что их вообще надо убрать из скрипта — они для этого не предназначены (за исключением Coucou, непонятно, почему они её как wav сделали).

Странно. У меня, вроде, запускаются. Я проверю, там просто надо рандом изменить с 27 на 12, и тогда будут запускаться только они. Сразу станет понятно, играют они, или нет. А другие номера выпадать не будут.

Цитата:

Сообщение от Firefox3860 (Сообщение 12551)


Ещё предлагаю реализовать задумку с отображением текста при переключении станций, потому что сейчас плохо заметен сам момент переключения. Команда console_addtext. Строки:
252 - "Music"
18970051 - "Turn off the radio"

Спасибо. Прикрутим )
Жаль, конечно, что нет команды для вывода произвольного текста. Это было бы очень кстати.

Цитата:

Сообщение от Firefox3860 (Сообщение 12551)
А ещё, у тебя в notepad'е синтаксис работает, когда ты пишешь вот так, с большими буквами? Просто у меня шаблон настроен только на нижний регистр.

А я залез в настройки синтаксиса и поставил галочку, чтобы работало с любым регистром )

UPD: Проверил, все wav воспроизводятся без проблем. При поощи FreeRide_ScoreSet отслеживал номера треков.
Вопросы возникли к номерам 1, 2, 3 и 8. Там хромает либо качество самой записи, либо громкость, либо и то, и другое.
Это 10_music.wav, 10_musicin.wav, 12_radio.wav и s_music2.wav
Вот их, я думаю, стоило бы из списка удалить, если никто не против.
А остальные, на мой вкус, вполне себе норм.

Kaiser 14.10.2020 21:07

2 KlassenAS

Я проверил твой обновленный скрипт, все отлично работает. Сварганю теперь мини ДЛС к Angel Pine Mod. Спасибо тебе!


Текущее время: 04:22. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot