|
||||||||||||||||
|
||||||||||||||||
|
25.10.2020, 22:16 | #221 | ||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Написал процедуру, чтобы скрипт помнил последние девять тачек, в которых побывал Томми и радиостанции в них.
Также, теперь в каждой тачке, которая не первая, радиостанция или выкл задаются рандомно. Перезалил архивы, обновил ссылки для 2.0 и 2.1. Сам скрипт, если кому интересно подобное чтение: Развернуть для просмотраКод:
//Radio Script Ver. 2.1 26-10-2020 By KlassenAS For Abradox //Четыре радиостанции, более 20 треков на каждой //Первая радиостанция с родной музыкой Mafia //Радиостанции переключаются. Также радио можно выключить. //При старте на каждой радиостанции случайным образом //начинает играть один из треков. //По окончании трека, следующий выбирается так же, случайным образом. Dim_Act 13 Dim_Flt 31 GetActivePlayer 0 FindActor 1 FindActor 2 FindActor 3 FindActor 4 FindActor 5 FindActor 6 FindActor 7 FindActor 8 FindActor 9 FindActor 10 FindActor 11 FindActor 12 //Акторы 1-9 - для запоминания машин //Актор 10 - для текущей машины //Актор 11 - для прошлой машины //Актор 12 - данный скрипт //Удалить для использования в scene2.bin, //Оставить для использования с патчем от GOLOD55 //Начало удаления Human_GetProperty 0,4,Energy If Flt[4]=0,-1,dan_on Act_SetState 100,Off Label dan_on //Конец удаления CityMusic_Off 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]=-1 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 //Для перехода на следующий трек Let Flt[20]=0 //Для перехода к меткам треков //Номера радиостанций в запомненных тачках 1-9: Let Flt[21]=-1 Let Flt[22]=-1 Let Flt[23]=-1 Let Flt[24]=-1 Let Flt[25]=-1 Let Flt[26]=-1 Let Flt[27]=-1 Let Flt[28]=-1 Let Flt[29]=-1 //Логика запоминания тачек: Let Flt[30]=0 Rnd 11,23 Rnd 12,24 Rnd 13,24 Rnd 14,27 GoTo CHECK Label RADIOCREATE Label RADIO00CREATE CommandBlock 1 Let Flt[20]=Flt[11]+100000 GoTo Flt[20] Label 100000 Stream_Create 0,"sounds\03_music.wav" GoTo RADIO00CREATED Label 100001 Stream_Create 0,"sounds\13b_music.wav" GoTo RADIO00CREATED Label 100002 Stream_Create 0,"sounds\14_Coucou.wav" GoTo RADIO00CREATED Label 100003 Stream_Create 0,"sounds\18_radio.wav" GoTo RADIO00CREATED Label 100004 Stream_Create 0,"sounds\s_music1.wav" GoTo RADIO00CREATED Label 100005 Stream_Create 0,"sounds\s_music3.wav" GoTo RADIO00CREATED Label 100006 Stream_Create 0,"sounds\s_music5.wav" GoTo RADIO00CREATED Label 100007 Stream_Create 0,"sounds\music\city_music_01.ogg" GoTo RADIO00CREATED Label 100008 Stream_Create 0,"sounds\music\city_music_02.ogg" GoTo RADIO00CREATED Label 100009 Stream_Create 0,"sounds\music\city_music_03.ogg" GoTo RADIO00CREATED Label 100010 Stream_Create 0,"sounds\music\city_music_04.ogg" GoTo RADIO00CREATED Label 100011 Stream_Create 0,"sounds\music\city_music_05.ogg" GoTo RADIO00CREATED Label 100012 Stream_Create 0,"sounds\music\city_music_06.ogg" GoTo RADIO00CREATED Label 100013 Stream_Create 0,"sounds\music\city_music_07.ogg" GoTo RADIO00CREATED Label 100014 Stream_Create 0,"sounds\music\city_music_08.ogg" GoTo RADIO00CREATED Label 100015 Stream_Create 0,"sounds\music\city_music_09.ogg" GoTo RADIO00CREATED Label 100016 Stream_Create 0,"sounds\music\city_music_10.ogg" GoTo RADIO00CREATED Label 100017 Stream_Create 0,"sounds\music\city_music_11.ogg" GoTo RADIO00CREATED Label 100018 Stream_Create 0,"sounds\music\city_music_12.ogg" GoTo RADIO00CREATED Label 100019 Stream_Create 0,"sounds\music\city_music_13.ogg" GoTo RADIO00CREATED Label 100020 Stream_Create 0,"sounds\music\city_music_15.ogg" GoTo RADIO00CREATED Label 100021 Stream_Create 0,"sounds\music\12_scene music.ogg" GoTo RADIO00CREATED Label 100022 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 Let Flt[20]=Flt[12]+100100 GoTo Flt[20] Label 100100 Stream_Create 1,"radio\radio01-00.ogg" GoTo RADIO01CREATED Label 100101 Stream_Create 1,"radio\radio01-01.ogg" GoTo RADIO01CREATED Label 100102 Stream_Create 1,"radio\radio01-02.ogg" GoTo RADIO01CREATED Label 100103 Stream_Create 1,"radio\radio01-03.ogg" GoTo RADIO01CREATED Label 100104 Stream_Create 1,"radio\radio01-04.ogg" GoTo RADIO01CREATED Label 100105 Stream_Create 1,"radio\radio01-05.ogg" GoTo RADIO01CREATED Label 100106 Stream_Create 1,"radio\radio01-06.ogg" GoTo RADIO01CREATED Label 100107 Stream_Create 1,"radio\radio01-07.ogg" GoTo RADIO01CREATED Label 100108 Stream_Create 1,"radio\radio01-08.ogg" GoTo RADIO01CREATED Label 100109 Stream_Create 1,"radio\radio01-09.ogg" GoTo RADIO01CREATED Label 100110 Stream_Create 1,"radio\radio01-10.ogg" GoTo RADIO01CREATED Label 100111 Stream_Create 1,"radio\radio01-11.ogg" GoTo RADIO01CREATED Label 100112 Stream_Create 1,"radio\radio01-12.ogg" GoTo RADIO01CREATED Label 100113 Stream_Create 1,"radio\radio01-13.ogg" GoTo RADIO01CREATED Label 100114 Stream_Create 1,"radio\radio01-14.ogg" GoTo RADIO01CREATED Label 100115 Stream_Create 1,"radio\radio01-15.ogg" GoTo RADIO01CREATED Label 100116 Stream_Create 1,"radio\radio01-16.ogg" GoTo RADIO01CREATED Label 100117 Stream_Create 1,"radio\radio01-17.ogg" GoTo RADIO01CREATED Label 100118 Stream_Create 1,"radio\radio01-18.ogg" GoTo RADIO01CREATED Label 100119 Stream_Create 1,"radio\radio01-19.ogg" GoTo RADIO01CREATED Label 100120 Stream_Create 1,"radio\radio01-20.ogg" GoTo RADIO01CREATED Label 100121 Stream_Create 1,"radio\radio01-21.ogg" GoTo RADIO01CREATED Label 100122 Stream_Create 1,"radio\radio01-22.ogg" GoTo RADIO01CREATED Label 100123 Stream_Create 1,"radio\radio01-23.ogg" 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 Let Flt[20]=Flt[13]+100200 GoTo Flt[20] Label 100200 Stream_Create 2,"radio\radio02-00.ogg" GoTo RADIO02CREATED Label 100201 Stream_Create 2,"radio\radio02-01.ogg" GoTo RADIO02CREATED Label 100202 Stream_Create 2,"radio\radio02-02.ogg" GoTo RADIO02CREATED Label 100203 Stream_Create 2,"radio\radio02-03.ogg" GoTo RADIO02CREATED Label 100204 Stream_Create 2,"radio\radio02-04.ogg" GoTo RADIO02CREATED Label 100205 Stream_Create 2,"radio\radio02-05.ogg" GoTo RADIO02CREATED Label 100206 Stream_Create 2,"radio\radio02-06.ogg" GoTo RADIO02CREATED Label 100207 Stream_Create 2,"radio\radio02-07.ogg" GoTo RADIO02CREATED Label 100208 Stream_Create 2,"radio\radio02-08.ogg" GoTo RADIO02CREATED Label 100209 Stream_Create 2,"radio\radio02-09.ogg" GoTo RADIO02CREATED Label 100210 Stream_Create 2,"radio\radio02-10.ogg" GoTo RADIO02CREATED Label 100211 Stream_Create 2,"radio\radio02-11.ogg" GoTo RADIO02CREATED Label 100212 Stream_Create 2,"radio\radio02-12.ogg" GoTo RADIO02CREATED Label 100213 Stream_Create 2,"radio\radio02-13.ogg" GoTo RADIO02CREATED Label 100214 Stream_Create 2,"radio\radio02-14.ogg" GoTo RADIO02CREATED Label 100215 Stream_Create 2,"radio\radio02-15.ogg" GoTo RADIO02CREATED Label 100216 Stream_Create 2,"radio\radio02-16.ogg" GoTo RADIO02CREATED Label 100217 Stream_Create 2,"radio\radio02-17.ogg" GoTo RADIO02CREATED Label 100218 Stream_Create 2,"radio\radio02-18.ogg" GoTo RADIO02CREATED Label 100219 Stream_Create 2,"radio\radio02-19.ogg" GoTo RADIO02CREATED Label 100220 Stream_Create 2,"radio\radio02-20.ogg" GoTo RADIO02CREATED Label 100221 Stream_Create 2,"radio\radio02-21.ogg" GoTo RADIO02CREATED Label 100222 Stream_Create 2,"radio\radio02-22.ogg" GoTo RADIO02CREATED Label 100223 Stream_Create 2,"radio\radio02-23.ogg" 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 Let Flt[20]=Flt[14]+100300 GoTo Flt[20] Label 100300 Stream_Create 3,"radio\radio03-00.mp3" GoTo RADIO03CREATED Label 100301 Stream_Create 3,"radio\radio03-01.mp3" GoTo RADIO03CREATED Label 100302 Stream_Create 3,"radio\radio03-02.mp3" GoTo RADIO03CREATED Label 100303 Stream_Create 3,"radio\radio03-03.mp3" GoTo RADIO03CREATED Label 100304 Stream_Create 3,"radio\radio03-04.mp3" GoTo RADIO03CREATED Label 100305 Stream_Create 3,"radio\radio03-05.mp3" GoTo RADIO03CREATED Label 100306 Stream_Create 3,"radio\radio03-06.mp3" GoTo RADIO03CREATED Label 100307 Stream_Create 3,"radio\radio03-07.mp3" GoTo RADIO03CREATED Label 100308 Stream_Create 3,"radio\radio03-08.mp3" GoTo RADIO03CREATED Label 100309 Stream_Create 3,"radio\radio03-09.mp3" GoTo RADIO03CREATED Label 100310 Stream_Create 3,"radio\radio03-10.mp3" GoTo RADIO03CREATED Label 100311 Stream_Create 3,"radio\radio03-11.mp3" GoTo RADIO03CREATED Label 100312 Stream_Create 3,"radio\radio03-12.mp3" GoTo RADIO03CREATED Label 100313 Stream_Create 3,"radio\radio03-13.mp3" GoTo RADIO03CREATED Label 100314 Stream_Create 3,"radio\radio03-14.mp3" GoTo RADIO03CREATED Label 100315 Stream_Create 3,"radio\radio03-15.mp3" GoTo RADIO03CREATED Label 100316 Stream_Create 3,"radio\radio03-16.mp3" GoTo RADIO03CREATED Label 100317 Stream_Create 3,"radio\radio03-17.mp3" GoTo RADIO03CREATED Label 100318 Stream_Create 3,"radio\radio03-18.mp3" GoTo RADIO03CREATED Label 100319 Stream_Create 3,"radio\radio03-19.mp3" GoTo RADIO03CREATED Label 100320 Stream_Create 3,"radio\radio03-20.mp3" GoTo RADIO03CREATED Label 100321 Stream_Create 3,"radio\radio03-21.mp3" GoTo RADIO03CREATED Label 100322 Stream_Create 3,"radio\radio03-22.mp3" GoTo RADIO03CREATED Label 100323 Stream_Create 3,"radio\radio03-23.mp3" GoTo RADIO03CREATED Label 100324 Stream_Create 3,"radio\radio03-24.mp3" GoTo RADIO03CREATED Label 100325 Stream_Create 3,"radio\radio03-25.mp3" GoTo RADIO03CREATED Label 100326 Stream_Create 3,"radio\radio03-26.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 Return Label CHECK CommandBlock 1 GoSub POSITION CommandBlock 0 Human_GetSeatIdx 0,7 If Flt[7]=-1,CAR_OUT,CAR_IN Label CAR_IN Ctrl_Read 5,JUMP1 If Flt[5]=0,-1,RADIO_UP Label READ_DOWN Ctrl_Read 5,CROUCH1 If Flt[5]=0,-1,RADIO_DOWN Label CHECKPLAY If Flt[4]=0,-,CHECK //CityMusic_Off Wait 500 GoSub RADIO_READ If Flt[9]>-1,-1,RADIO_OFF GoSub RADIOCREATE GoSub RADIO_PLAY Let Flt[20]=Flt[9]+2000 GoSub Flt[20] Label RADIO_OFF If Flt[9]=-1,-1,ADIRDA Console_AddText 90000000 Label ADIRDA Let Flt[4]=1 GoTo CHECK Label CAR_OUT If Flt[4]=1,-1,CHECK CommandBlock 1 GoSub RADIO_DESTROY Let Flt[4]=0 GoSub RADIO_SAVE CommandBlock 0 GoTo CHECK Label RADIO_UP CommandBlock 1 If Flt[9]=-1,-1,CHANGEUP GoSub RADIOCREATE GoSub RADIO_PLAY Label CHANGEUP Stream_Fadevol 6,1,0,0 Let Flt[9]=Flt[9]+1 If Flt[9]>3,-1,CHANGEDUP Let Flt[9]=-1 Label CHANGEDUP Let Flt[20]=Flt[9]+2000 GoSub Flt[20] CommandBlock 0 Let Flt[7]=0 Label 3333 Ctrl_Read 5,JUMP1 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 If Flt[9]=-1,-1,CHANGEDOWN GoSub RADIOCREATE GoSub RADIO_PLAY Label CHANGEDOWN Stream_Fadevol 6,1,0,0 Let Flt[9]=Flt[9]-1 If Flt[9]<-1,-1,CHANGEDDOWN Let Flt[9]=3 Label CHANGEDDOWN Let Flt[20]=Flt[9]+2000 GoSub Flt[20] CommandBlock 0 Let Flt[7]=0 Label 2222 Ctrl_Read 5,CROUCH1 If Flt[5]=1,-1,CHECKPLAY Wait 200 Let Flt[7]=Flt[7]+1 If Flt[7]<5,2222,-1 GoTo CHECKPLAY Label 1999 GoSub RADIO_DESTROY Console_AddText 90000000 Return Label 2000 Let Flt[6]=Flt[0] Stream_Fadevol 6,1,1,1 Console_AddText 90000001 Return Label 2001 Let Flt[6]=Flt[1] Stream_Fadevol 6,1,1,1 Console_AddText 90000002 Return Label 2002 Let Flt[6]=Flt[2] Stream_Fadevol 6,1,1,1 Console_AddText 90000003 Return Label 2003 Let Flt[6]=Flt[3] Stream_Fadevol 6,1,1,1 Console_AddText 90000004 Return Label RADIO_PLAY 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 CommandBlock 0 Return Label RADIO_DESTROY 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 Return Label POSITION If Flt[4]=0,POSITION_END,-1 If Flt[9]=-1,POSITION_END,-1 GetGameTime 7 Let Flt[10]=Flt[7]-Flt[8] If Flt[10]<500,POSITION_END,-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,23 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,24 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,24 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 POSITION_END Label RADIO3END Stream_Fadevol 3,1,0,0 Stream_Pause 3 Stream_Destroy 3 Label RAND3 Rnd 10,27 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,POSITION_END Let Flt[6]=Flt[3] Stream_Fadevol 3,1,1,1 Label POSITION_END Return Label RADIO_READ CommandBlock 1 Let Flt[30]=0 FindNearActor 0,10,Car CompareActors 11,12,7 If Flt[7]=0,-1,FIRSTCAR CompareActors 11,10,7 If Flt[7]=0,-1,FIRSTCAR Rnd 9,5 Let Flt[9]=Flt[9]-1 Label FIRSTCAR CompareActors 10,11,7 Set_Remote_Actor 10,12,11 If Flt[7]=0,-1,RADIO_READED Label COMPARE_ENT1 CompareActors 10,1,7 If Flt[7]=1,-1,COMPARE_ENT2 Let Flt[9]=Flt[21] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT2 CompareActors 10,2,7 If Flt[7]=1,-1,COMPARE_ENT3 Let Flt[9]=Flt[22] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT3 CompareActors 10,3,7 If Flt[7]=1,-1,COMPARE_ENT4 Let Flt[9]=Flt[23] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT4 CompareActors 10,4,7 If Flt[7]=1,-1,COMPARE_ENT5 Let Flt[9]=Flt[24] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT5 CompareActors 10,5,7 If Flt[7]=1,-1,COMPARE_ENT6 Let Flt[9]=Flt[25] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT6 CompareActors 10,6,7 If Flt[7]=1,-1,COMPARE_ENT7 Let Flt[9]=Flt[26] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT7 CompareActors 10,7,7 If Flt[7]=1,-1,COMPARE_ENT8 Let Flt[9]=Flt[27] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT8 CompareActors 10,8,7 If Flt[7]=1,-1,COMPARE_ENT9 Let Flt[9]=Flt[28] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT9 CompareActors 10,9,7 If Flt[7]=1,-1,COMPARE_ENT0 Let Flt[9]=Flt[29] Let Flt[30]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT0 If Flt[30]=1,RADIO_READED,-1 GoSub RADIO_WRITE Label RADIO_READED CommandBlock 0 Return Label RADIO_SAVE CommandBlock 1 Label COMPARE_EXIT1 CompareActors 10,1,7 If Flt[7]=1,-1,COMPARE_EXIT2 Let Flt[21]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT2 CompareActors 10,2,7 If Flt[7]=1,-1,COMPARE_EXIT3 Let Flt[22]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT3 CompareActors 10,3,7 If Flt[7]=1,-1,COMPARE_EXIT4 Let Flt[23]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT4 CompareActors 10,4,7 If Flt[7]=1,-1,COMPARE_EXIT5 Let Flt[24]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT5 CompareActors 10,5,7 If Flt[7]=1,-1,COMPARE_EXIT6 Let Flt[25]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT6 CompareActors 10,6,7 If Flt[7]=1,-1,COMPARE_EXIT7 Let Flt[26]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT7 CompareActors 10,7,7 If Flt[7]=1,-1,COMPARE_EXIT8 Let Flt[27]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT8 CompareActors 10,8,7 If Flt[7]=1,-1,COMPARE_EXIT9 Let Flt[28]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT9 CompareActors 10,9,7 If Flt[7]=1,-1,COMPARE_EXIT0 Let Flt[29]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT0 CommandBlock 0 Return Label RADIO_WRITE Set_Remote_Actor 8,12,9 Let Flt[29]=Flt[28] Set_Remote_Actor 7,12,8 Let Flt[28]=Flt[27] Set_Remote_Actor 6,12,7 Let Flt[27]=Flt[26] Set_Remote_Actor 5,12,6 Let Flt[26]=Flt[25] Set_Remote_Actor 4,12,5 Let Flt[25]=Flt[24] Set_Remote_Actor 3,12,4 Let Flt[24]=Flt[23] Set_Remote_Actor 2,12,3 Let Flt[23]=Flt[22] Set_Remote_Actor 1,12,2 Let Flt[22]=Flt[21] Set_Remote_Actor 10,12,1 Let Flt[21]=Flt[9] Return [свернуть] |
||
цитата |
Поблагодарил: |
Kaiser (31.10.2020)
|
26.10.2020, 07:21 | #222 | |||||
Mafia Modding Crew Сообщений: 49
Репутация: 31
Detective
|
Цитата:
Цитата:
Цитата:
На девять тачек наверное многовато даже для фрирайда Хотя это мега круто Последний раз редактировалось 1MAMOHT1; 26.10.2020 в 07:22. |
|||||
цитата |
26.10.2020, 08:26 | #223 | |||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Нормально юзаем. С Mafia Parcher.
Даже включили его в архив. Он как раз и сделан для версий 1.0 и 1.2 Работает во всех сценах, без исключения, специально в сцены импортировать не нужно. Цитата:
Плюс у тебя целый гараж Сальери. При старте новой миссии или загрузке сейва все скриптовые "запоминалки" сбрасываются, но зато в рамках одной миссии раздолье ) Плюс, запоминание авто безупречно работает только с авто из сцены, а тачки из трафика, иногда, запоминает по два раза. Хз, почему. Следовательно, с учётом игровых глюков, для пяти авто нужен резерв. Поэтому девять. Три тачки запоминать, или девять - скрипт от этого принципиально сложнее не становится, в нём лишь появляется больше копипаста с однообразными блоками команд. То же самое, если приспичит увеличить количество радиостанций с 4 до 100. По три дополнительных переменных на каждую радиостанцию, всё остальное - копипаст с исправлением номеров. Последний раз редактировалось KlassenAS; 26.10.2020 в 10:42. |
|||
цитата |
26.10.2020, 11:16 | #224 | ||
Modding Crew Сообщений: 2,771
Репутация: 1311
Councilor
|
Всё просто. По умолчанию, радио во всех машинах выключено и его нужно включить самому. Т.е. даже, если Том садится в машину в катсцене, то радио не включается и не мешает (раньше включалось ). А когда ты подъезжаешь к миссии и знаешь что будет катсцена с машиной, то нужно самому выключить радио, чтобы оно не мешало.
В общем это не сложно, но играть приятнее. Треки из Mafia Defenitive Edition и те что мы подобрали сами, очень хорошо подходят к атмосфере оригинальной Mafia. |
||
цитата |
26.10.2020, 23:21 | #225 | ||
VIP Сообщений: 100
Репутация: 152
Thug
|
чуток оптимизации скрипту..
1. а есть необходимость определять акторы 1-11 актором скрипта? оно сработает только один раз(при старте скрипта), а при этом данный стек все равно пустой. 2. фильтр перед Label dan_on-овский не мешает в сценах2 и его не требуется удалять. он просто инактивирует скрипт в миссиях без плеер_актора. а вот флт4 обнулить не мешает ниже, ога. 3. аналогично актор_стеку, стек флт-х также при старте скрипта пустой. другими словами говоря, изначально все значения переменных равны 0 и нет необходимости в командах типа Let Flt[]=0 (кроме флт4). А присвоение значение "-1" компактнее сделать через вектор. Итого кусочек скрипта наверное может выглядеть так: Human_GetProperty 0,4,Energy If Flt[4]=0,-1,dan_on Act_SetState 100,Off Label dan_on CityMusic_Off Let Flt[4]=0 vect_set 9,-1,-1,-1 vect_set 12,-1,-1,-1 vect_set 21,-1,-1,-1 vect_set 24,-1,-1,-1 vect_set 27,-1,-1,-1 |
||
цитата |
Поблагодарили: 4 |
27.10.2020, 00:07 | #226 | |||||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Цитата:
Цитата:
Цитата:
Умён! Я не был уверен, что переменные создаются с нулём и страховался от возможных рандомных значений. Кроме того, мне нужно было расписать значение каждой переменной и комментарий к ней, чтобы не запутаться. Всё-таки удержать в голове значения и назначение тридцати переменных - задача нетривиальная. Большое спасибо за советы и замечания! Поколдую теперь немного над оптимизацией. Тем более, у меня ещё была мысль насчёт процедуры создания потоков. Тоже оптимизировать и выкинуть одну переменную. UPD: Поработал над оптимизацией версий 2.0 и 2.1 В архив с версией 2.1 положил папку sounds с шестью wav-файлами. чтобы гарантированно воспроизводились у всех. Ждём день. если новых замечаний и идей для улучшения не найдётся, тогда, наконец-то, оформим релиз. Ver. 2.1 https://drive.google.com/file/d/1jQK...ew?usp=sharing Ver. 2.0 https://drive.google.com/file/d/1bJV...ew?usp=sharing Развернуть для просмотраКод:
//Radio Script Ver. 2.1 27-10-2020 By KlassenAS For Abradox Dim_Act 13 Dim_Flt 30 GetActivePlayer 0 FindActor 10 FindActor 11 FindActor 12 //Акторы 1-9 - для запоминания машин //Актор 10 - для текущей машины //Актор 11 - для прошлой машины //Актор 12 - данный скрипт Human_GetProperty 0,4,Energy If Flt[4]=0,-1,dan_on Act_SetState 100,Off Label dan_on CityMusic_Off //ПЕРЕМЕННЫЕ: //0-3 - идентификаторы потоков //4 - Логика //5 - Нажатие клавиш вперёд1 и назад1 //6 - Последний активный поток //7 - Сиденье/Время с начала игры/текущее время потока/ //8 - Прошлое время с начала игры //Номер радиостанции //9 - Номер играющей радиостанции //10 - Рандом для radio/разница во времени игры //11-14 - Номера треков на радиостанциях 0 - 3 //15-18 - для позиций потоков 0-3 //19 - Логика запоминания тачек //20 - Для перехода к меткам треков //21-29 - Номера радиостанций в запомненных тачках 1-9 Let Flt[4]=0 Vect_Set 9,-1,-1,-1 Vect_Set 21,-1,-1,-1 Vect_Set 24,-1,-1,-1 Vect_Set 27,-1,-1,-1 Rnd 11,23 Rnd 12,24 Rnd 13,24 Rnd 14,27 GoTo CHECK Label RADIOCREATE GoSub RADIO00CREATE GoSub RADIO01CREATE GoSub RADIO02CREATE GoSub RADIO03CREATE Return Label RADIO00CREATE CommandBlock 1 Let Flt[20]=Flt[11]+100000 GoTo Flt[20] Label 100000 Stream_Create 0,"sounds\03_music.wav" GoTo RADIO00CREATED Label 100001 Stream_Create 0,"sounds\13b_music.wav" GoTo RADIO00CREATED Label 100002 Stream_Create 0,"sounds\14_Coucou.wav" GoTo RADIO00CREATED Label 100003 Stream_Create 0,"sounds\18_radio.wav" GoTo RADIO00CREATED Label 100004 Stream_Create 0,"sounds\s_music1.wav" GoTo RADIO00CREATED Label 100005 Stream_Create 0,"sounds\s_music3.wav" GoTo RADIO00CREATED Label 100006 Stream_Create 0,"sounds\s_music5.wav" GoTo RADIO00CREATED Label 100007 Stream_Create 0,"sounds\music\city_music_01.ogg" GoTo RADIO00CREATED Label 100008 Stream_Create 0,"sounds\music\city_music_02.ogg" GoTo RADIO00CREATED Label 100009 Stream_Create 0,"sounds\music\city_music_03.ogg" GoTo RADIO00CREATED Label 100010 Stream_Create 0,"sounds\music\city_music_04.ogg" GoTo RADIO00CREATED Label 100011 Stream_Create 0,"sounds\music\city_music_05.ogg" GoTo RADIO00CREATED Label 100012 Stream_Create 0,"sounds\music\city_music_06.ogg" GoTo RADIO00CREATED Label 100013 Stream_Create 0,"sounds\music\city_music_07.ogg" GoTo RADIO00CREATED Label 100014 Stream_Create 0,"sounds\music\city_music_08.ogg" GoTo RADIO00CREATED Label 100015 Stream_Create 0,"sounds\music\city_music_09.ogg" GoTo RADIO00CREATED Label 100016 Stream_Create 0,"sounds\music\city_music_10.ogg" GoTo RADIO00CREATED Label 100017 Stream_Create 0,"sounds\music\city_music_11.ogg" GoTo RADIO00CREATED Label 100018 Stream_Create 0,"sounds\music\city_music_12.ogg" GoTo RADIO00CREATED Label 100019 Stream_Create 0,"sounds\music\city_music_13.ogg" GoTo RADIO00CREATED Label 100020 Stream_Create 0,"sounds\music\city_music_15.ogg" GoTo RADIO00CREATED Label 100021 Stream_Create 0,"sounds\music\12_scene music.ogg" GoTo RADIO00CREATED Label 100022 Stream_Create 0,"sounds\music\mise02-ulicka.ogg" GoTo RADIO00CREATED Label RADIO00CREATED Stream_SetPos 0,15 CommandBlock 0 If Flt[9]=0,-1,CREATED00 Let Flt[6]=Flt[0] Label CREATED00 Return Label RADIO01CREATE CommandBlock 1 Let Flt[20]=Flt[12]+100100 GoTo Flt[20] Label 100100 Stream_Create 1,"radio\radio01-00.ogg" GoTo RADIO01CREATED Label 100101 Stream_Create 1,"radio\radio01-01.ogg" GoTo RADIO01CREATED Label 100102 Stream_Create 1,"radio\radio01-02.ogg" GoTo RADIO01CREATED Label 100103 Stream_Create 1,"radio\radio01-03.ogg" GoTo RADIO01CREATED Label 100104 Stream_Create 1,"radio\radio01-04.ogg" GoTo RADIO01CREATED Label 100105 Stream_Create 1,"radio\radio01-05.ogg" GoTo RADIO01CREATED Label 100106 Stream_Create 1,"radio\radio01-06.ogg" GoTo RADIO01CREATED Label 100107 Stream_Create 1,"radio\radio01-07.ogg" GoTo RADIO01CREATED Label 100108 Stream_Create 1,"radio\radio01-08.ogg" GoTo RADIO01CREATED Label 100109 Stream_Create 1,"radio\radio01-09.ogg" GoTo RADIO01CREATED Label 100110 Stream_Create 1,"radio\radio01-10.ogg" GoTo RADIO01CREATED Label 100111 Stream_Create 1,"radio\radio01-11.ogg" GoTo RADIO01CREATED Label 100112 Stream_Create 1,"radio\radio01-12.ogg" GoTo RADIO01CREATED Label 100113 Stream_Create 1,"radio\radio01-13.ogg" GoTo RADIO01CREATED Label 100114 Stream_Create 1,"radio\radio01-14.ogg" GoTo RADIO01CREATED Label 100115 Stream_Create 1,"radio\radio01-15.ogg" GoTo RADIO01CREATED Label 100116 Stream_Create 1,"radio\radio01-16.ogg" GoTo RADIO01CREATED Label 100117 Stream_Create 1,"radio\radio01-17.ogg" GoTo RADIO01CREATED Label 100118 Stream_Create 1,"radio\radio01-18.ogg" GoTo RADIO01CREATED Label 100119 Stream_Create 1,"radio\radio01-19.ogg" GoTo RADIO01CREATED Label 100120 Stream_Create 1,"radio\radio01-20.ogg" GoTo RADIO01CREATED Label 100121 Stream_Create 1,"radio\radio01-21.ogg" GoTo RADIO01CREATED Label 100122 Stream_Create 1,"radio\radio01-22.ogg" GoTo RADIO01CREATED Label 100123 Stream_Create 1,"radio\radio01-23.ogg" GoTo RADIO01CREATED Label RADIO01CREATED Stream_SetPos 1,16 CommandBlock 0 If Flt[9]=1,-1,CREATED01 Let Flt[6]=Flt[1] Label CREATED01 Return Label RADIO02CREATE CommandBlock 1 Let Flt[20]=Flt[13]+100200 GoTo Flt[20] Label 100200 Stream_Create 2,"radio\radio02-00.ogg" GoTo RADIO02CREATED Label 100201 Stream_Create 2,"radio\radio02-01.ogg" GoTo RADIO02CREATED Label 100202 Stream_Create 2,"radio\radio02-02.ogg" GoTo RADIO02CREATED Label 100203 Stream_Create 2,"radio\radio02-03.ogg" GoTo RADIO02CREATED Label 100204 Stream_Create 2,"radio\radio02-04.ogg" GoTo RADIO02CREATED Label 100205 Stream_Create 2,"radio\radio02-05.ogg" GoTo RADIO02CREATED Label 100206 Stream_Create 2,"radio\radio02-06.ogg" GoTo RADIO02CREATED Label 100207 Stream_Create 2,"radio\radio02-07.ogg" GoTo RADIO02CREATED Label 100208 Stream_Create 2,"radio\radio02-08.ogg" GoTo RADIO02CREATED Label 100209 Stream_Create 2,"radio\radio02-09.ogg" GoTo RADIO02CREATED Label 100210 Stream_Create 2,"radio\radio02-10.ogg" GoTo RADIO02CREATED Label 100211 Stream_Create 2,"radio\radio02-11.ogg" GoTo RADIO02CREATED Label 100212 Stream_Create 2,"radio\radio02-12.ogg" GoTo RADIO02CREATED Label 100213 Stream_Create 2,"radio\radio02-13.ogg" GoTo RADIO02CREATED Label 100214 Stream_Create 2,"radio\radio02-14.ogg" GoTo RADIO02CREATED Label 100215 Stream_Create 2,"radio\radio02-15.ogg" GoTo RADIO02CREATED Label 100216 Stream_Create 2,"radio\radio02-16.ogg" GoTo RADIO02CREATED Label 100217 Stream_Create 2,"radio\radio02-17.ogg" GoTo RADIO02CREATED Label 100218 Stream_Create 2,"radio\radio02-18.ogg" GoTo RADIO02CREATED Label 100219 Stream_Create 2,"radio\radio02-19.ogg" GoTo RADIO02CREATED Label 100220 Stream_Create 2,"radio\radio02-20.ogg" GoTo RADIO02CREATED Label 100221 Stream_Create 2,"radio\radio02-21.ogg" GoTo RADIO02CREATED Label 100222 Stream_Create 2,"radio\radio02-22.ogg" GoTo RADIO02CREATED Label 100223 Stream_Create 2,"radio\radio02-23.ogg" GoTo RADIO02CREATED Label RADIO02CREATED Stream_SetPos 2,17 CommandBlock 0 If Flt[9]=2,-1,CREATED02 Let Flt[6]=Flt[2] Label CREATED02 Return Label RADIO03CREATE CommandBlock 1 Let Flt[20]=Flt[14]+100300 GoTo Flt[20] Label 100300 Stream_Create 3,"radio\radio03-00.mp3" GoTo RADIO03CREATED Label 100301 Stream_Create 3,"radio\radio03-01.mp3" GoTo RADIO03CREATED Label 100302 Stream_Create 3,"radio\radio03-02.mp3" GoTo RADIO03CREATED Label 100303 Stream_Create 3,"radio\radio03-03.mp3" GoTo RADIO03CREATED Label 100304 Stream_Create 3,"radio\radio03-04.mp3" GoTo RADIO03CREATED Label 100305 Stream_Create 3,"radio\radio03-05.mp3" GoTo RADIO03CREATED Label 100306 Stream_Create 3,"radio\radio03-06.mp3" GoTo RADIO03CREATED Label 100307 Stream_Create 3,"radio\radio03-07.mp3" GoTo RADIO03CREATED Label 100308 Stream_Create 3,"radio\radio03-08.mp3" GoTo RADIO03CREATED Label 100309 Stream_Create 3,"radio\radio03-09.mp3" GoTo RADIO03CREATED Label 100310 Stream_Create 3,"radio\radio03-10.mp3" GoTo RADIO03CREATED Label 100311 Stream_Create 3,"radio\radio03-11.mp3" GoTo RADIO03CREATED Label 100312 Stream_Create 3,"radio\radio03-12.mp3" GoTo RADIO03CREATED Label 100313 Stream_Create 3,"radio\radio03-13.mp3" GoTo RADIO03CREATED Label 100314 Stream_Create 3,"radio\radio03-14.mp3" GoTo RADIO03CREATED Label 100315 Stream_Create 3,"radio\radio03-15.mp3" GoTo RADIO03CREATED Label 100316 Stream_Create 3,"radio\radio03-16.mp3" GoTo RADIO03CREATED Label 100317 Stream_Create 3,"radio\radio03-17.mp3" GoTo RADIO03CREATED Label 100318 Stream_Create 3,"radio\radio03-18.mp3" GoTo RADIO03CREATED Label 100319 Stream_Create 3,"radio\radio03-19.mp3" GoTo RADIO03CREATED Label 100320 Stream_Create 3,"radio\radio03-20.mp3" GoTo RADIO03CREATED Label 100321 Stream_Create 3,"radio\radio03-21.mp3" GoTo RADIO03CREATED Label 100322 Stream_Create 3,"radio\radio03-22.mp3" GoTo RADIO03CREATED Label 100323 Stream_Create 3,"radio\radio03-23.mp3" GoTo RADIO03CREATED Label 100324 Stream_Create 3,"radio\radio03-24.mp3" GoTo RADIO03CREATED Label 100325 Stream_Create 3,"radio\radio03-25.mp3" GoTo RADIO03CREATED Label 100326 Stream_Create 3,"radio\radio03-26.mp3" GoTo RADIO03CREATED Label RADIO03CREATED Stream_SetPos 3,18 CommandBlock 0 If Flt[9]=3,-1,CREATED03 Let Flt[6]=Flt[3] Label CREATED03 Return Label CHECK CommandBlock 1 GoSub POSITION CommandBlock 0 Human_GetSeatIdx 0,7 If Flt[7]=-1,CAR_OUT,CAR_IN Label CAR_IN Ctrl_Read 5,JUMP1 If Flt[5]=0,-1,RADIO_UP Label READ_DOWN Ctrl_Read 5,CROUCH1 If Flt[5]=0,-1,RADIO_DOWN Label CHECKPLAY If Flt[4]=0,-,CHECK //CityMusic_Off Wait 500 GoSub RADIO_READ If Flt[9]>-1,-1,RADIO_OFF GoSub RADIOCREATE GoSub RADIO_PLAY Let Flt[20]=Flt[9]+2000 GoSub Flt[20] Label RADIO_OFF If Flt[9]=-1,-1,ADIRDA Console_AddText 90000000 Label ADIRDA Let Flt[4]=1 GoTo CHECK Label CAR_OUT If Flt[4]=1,-1,CHECK CommandBlock 1 GoSub RADIO_DESTROY Let Flt[4]=0 GoSub RADIO_SAVE CommandBlock 0 GoTo CHECK Label RADIO_UP CommandBlock 1 If Flt[9]=-1,-1,CHANGEUP GoSub RADIOCREATE GoSub RADIO_PLAY Label CHANGEUP Stream_Fadevol 6,1,0,0 Let Flt[9]=Flt[9]+1 If Flt[9]>3,-1,CHANGEDUP Let Flt[9]=-1 Label CHANGEDUP Let Flt[20]=Flt[9]+2000 GoSub Flt[20] CommandBlock 0 Let Flt[7]=0 Label 3333 Ctrl_Read 5,JUMP1 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 If Flt[9]=-1,-1,CHANGEDOWN GoSub RADIOCREATE GoSub RADIO_PLAY Label CHANGEDOWN Stream_Fadevol 6,1,0,0 Let Flt[9]=Flt[9]-1 If Flt[9]<-1,-1,CHANGEDDOWN Let Flt[9]=3 Label CHANGEDDOWN Let Flt[20]=Flt[9]+2000 GoSub Flt[20] CommandBlock 0 Let Flt[7]=0 Label 2222 Ctrl_Read 5,CROUCH1 If Flt[5]=1,-1,CHECKPLAY Wait 200 Let Flt[7]=Flt[7]+1 If Flt[7]<5,2222,-1 GoTo CHECKPLAY Label 1999 GoSub RADIO_DESTROY Console_AddText 90000000 Return Label 2000 Let Flt[6]=Flt[0] Stream_Fadevol 6,1,1,1 Console_AddText 90000001 Return Label 2001 Let Flt[6]=Flt[1] Stream_Fadevol 6,1,1,1 Console_AddText 90000002 Return Label 2002 Let Flt[6]=Flt[2] Stream_Fadevol 6,1,1,1 Console_AddText 90000003 Return Label 2003 Let Flt[6]=Flt[3] Stream_Fadevol 6,1,1,1 Console_AddText 90000004 Return Label RADIO_PLAY 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 CommandBlock 0 Return Label RADIO_DESTROY 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 Return Label POSITION If Flt[4]=0,POSITION_END,-1 If Flt[9]=-1,POSITION_END,-1 GetGameTime 7 Let Flt[10]=Flt[7]-Flt[8] If Flt[10]<500,POSITION_END,-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,23 If Flt[11]=Flt[10],RAND0,-1 Let Flt[11]=Flt[10] Let Flt[19]=1 Let Flt[15]=0 GoSub RADIO00CREATE 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,24 If Flt[12]=Flt[10],RAND1,-1 Let Flt[12]=Flt[10] Let Flt[19]=1 Let Flt[16]=0 GoSub RADIO01CREATE 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,24 If Flt[13]=Flt[10],RAND2,-1 Let Flt[13]=Flt[10] Let Flt[19]=1 Let Flt[17]=0 GoSub RADIO02CREATE 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 POSITION_END Label RADIO3END Stream_Fadevol 3,1,0,0 Stream_Pause 3 Stream_Destroy 3 Label RAND3 Rnd 10,27 If Flt[14]=Flt[10],RAND3,-1 Let Flt[14]=Flt[10] Let Flt[19]=1 Let Flt[18]=0 GoSub RADIO03CREATE CommandBlock 1 Stream_Fadevol 3,1,0,0 Stream_Play 3 Let Flt[19]=0 CommandBlock 0 If Flt[9]=3,-1,POSITION_END Let Flt[6]=Flt[3] Stream_Fadevol 3,1,1,1 Label POSITION_END Return Label RADIO_READ CommandBlock 1 Let Flt[19]=0 CompareActors 10,12,7 If Flt[7]=0,-1,NORANDOMRADIO CompareActors 10,11,7 If Flt[7]=0,-1,NORANDOMRADIO Rnd 9,5 Let Flt[9]=Flt[9]-1 Label NORANDOMRADIO FindNearActor 0,10,Car CompareActors 10,11,7 Set_Remote_Actor 10,12,11 If Flt[7]=0,-1,RADIO_READED Label COMPARE_ENT1 CompareActors 10,1,7 If Flt[7]=1,-1,COMPARE_ENT2 Let Flt[9]=Flt[21] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT2 CompareActors 10,2,7 If Flt[7]=1,-1,COMPARE_ENT3 Let Flt[9]=Flt[22] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT3 CompareActors 10,3,7 If Flt[7]=1,-1,COMPARE_ENT4 Let Flt[9]=Flt[23] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT4 CompareActors 10,4,7 If Flt[7]=1,-1,COMPARE_ENT5 Let Flt[9]=Flt[24] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT5 CompareActors 10,5,7 If Flt[7]=1,-1,COMPARE_ENT6 Let Flt[9]=Flt[25] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT6 CompareActors 10,6,7 If Flt[7]=1,-1,COMPARE_ENT7 Let Flt[9]=Flt[26] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT7 CompareActors 10,7,7 If Flt[7]=1,-1,COMPARE_ENT8 Let Flt[9]=Flt[27] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT8 CompareActors 10,8,7 If Flt[7]=1,-1,COMPARE_ENT9 Let Flt[9]=Flt[28] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT9 CompareActors 10,9,7 If Flt[7]=1,-1,COMPARE_ENT0 Let Flt[9]=Flt[29] Let Flt[19]=1 GoTo COMPARE_ENT0 Label COMPARE_ENT0 If Flt[19]=1,RADIO_READED,-1 GoSub RADIO_WRITE Label RADIO_READED CommandBlock 0 Return Label RADIO_SAVE CommandBlock 1 Label COMPARE_EXIT1 CompareActors 10,1,7 If Flt[7]=1,-1,COMPARE_EXIT2 Let Flt[21]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT2 CompareActors 10,2,7 If Flt[7]=1,-1,COMPARE_EXIT3 Let Flt[22]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT3 CompareActors 10,3,7 If Flt[7]=1,-1,COMPARE_EXIT4 Let Flt[23]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT4 CompareActors 10,4,7 If Flt[7]=1,-1,COMPARE_EXIT5 Let Flt[24]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT5 CompareActors 10,5,7 If Flt[7]=1,-1,COMPARE_EXIT6 Let Flt[25]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT6 CompareActors 10,6,7 If Flt[7]=1,-1,COMPARE_EXIT7 Let Flt[26]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT7 CompareActors 10,7,7 If Flt[7]=1,-1,COMPARE_EXIT8 Let Flt[27]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT8 CompareActors 10,8,7 If Flt[7]=1,-1,COMPARE_EXIT9 Let Flt[28]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT9 CompareActors 10,9,7 If Flt[7]=1,-1,COMPARE_EXIT0 Let Flt[29]=Flt[9] GoTo COMPARE_EXIT0 Label COMPARE_EXIT0 CommandBlock 0 Return Label RADIO_WRITE Set_Remote_Actor 8,12,9 Let Flt[29]=Flt[28] Set_Remote_Actor 7,12,8 Let Flt[28]=Flt[27] Set_Remote_Actor 6,12,7 Let Flt[27]=Flt[26] Set_Remote_Actor 5,12,6 Let Flt[26]=Flt[25] Set_Remote_Actor 4,12,5 Let Flt[25]=Flt[24] Set_Remote_Actor 3,12,4 Let Flt[24]=Flt[23] Set_Remote_Actor 2,12,3 Let Flt[23]=Flt[22] Set_Remote_Actor 1,12,2 Let Flt[22]=Flt[21] Set_Remote_Actor 10,12,1 Let Flt[21]=Flt[9] Return [свернуть] UPD: Прошло даже два дня. Новых косяков не обнаружилось. Идей для улучшения и большего усложнения скрипта пока нет. Все работает, как задумано. Думаю, можно оформить релиз. Вопрос: А как будем оформлять? Последний раз редактировалось KlassenAS; 29.10.2020 в 17:50. |
|||||
цитата |
30.10.2020, 23:09 | #227 | ||
Modding Crew Сообщений: 2,771
Репутация: 1311
Councilor
|
Вроде скрипт не должен был затрагивать сюжетную музыку?
В Миссии Creme de la Creme, когда в аэропорту глохнет машина, то при выходе из нее перестает играть сюжетная музыка. Включается она уже только в катсцене с падением самолета. Добавлено через 2 минуты Проверил. Нет, так не должно быть, без скрипта музыка играет, со скриптом выключается при выходе из машины. |
||
цитата |
31.10.2020, 11:33 | #228 | ||
Mafia Modding Crew Сообщений: 229
Репутация: 242
Judge
|
Ребята, у меня уже складывается впечатление, что я попал на экзамен по высшей математике))
__________________
Моя моддинговая страничка: https://vk.com/kaiser_edition |
||
цитата |
31.10.2020, 13:54 | #229 | ||||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Цитата:
Потому, что активная команда SityMusic_Off только в начале скрипта. И, при выходе из машины, скрипт либо уничтожает аудиопотоки, если радио играло, либо не делает ничего. По крайней мере, по логике так. Буду разбираться, чё как. Цитата:
Разработка подобного сложного алгоритма - обычное дело, когда пишешь курсач по программированию ) Я больше скажу - программа, которую я писал для дипломной работы, лишь пять раз объёмнее этого скрипта. UPD: Наконец-то дошли руки. Действительно, была ошибка в логике скрипта. После того, как я сделал, чтобы радио по умолчанию при старте скрипта было выключено, потоки не создавались, а при выходе из машины либо при выключении радио, уничтожались, я не уследил за логикой и при выходе из машины, при выключенном радио, скрипт выполнял ненужную процедуру уничтожения потоков. Любопытно, что не имея доступа к "своим" потокам, скрипт уничтожал "чужие" потоки, вырубая миссионную музыку. Жаль только, что это работает лишь в отношении потоков, созданных в миссии, а не загруженных из сохранения. Как бы то ни было, я дописал в обработку выхода из машины пару строк, чтобы процедура не выполнялась, когда не нужна. Теперь конфликта с миссионной музыкой нет. Обновлённые версии скриптов: Ver. 2.1 https://drive.google.com/file/d/1ARu...ew?usp=sharing Ver. 2.0 https://drive.google.com/file/d/1kb0...ew?usp=sharing Ver. 1.1 https://drive.google.com/file/d/13kA...ew?usp=sharing Последний раз редактировалось KlassenAS; 02.11.2020 в 21:46. |
||||
цитата |
Поблагодарили: 5 |
Abradox (31.10.2020),
EmptyBowl (09.11.2020),
Firefox3860 (08.11.2020),
grandshot (31.10.2020),
Kaiser (31.10.2020)
|
08.11.2020, 20:42 | #230 | ||
Mafia Modding Crew Сообщений: 687
Репутация: 773
Priest
|
|||
цитата |