Код:
//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