|
Цитата:
Сообщение от GOLOD55
1. а есть необходимость определять акторы 1-11 актором скрипта?
оно сработает только один раз(при старте скрипта), а при этом данный стек все равно пустой.
|
Присвоение всех акторов, пожалуй, действительно лишнее. Но 10 и 11 я сравниваю между собой и с 12 актором, чтобы определить, первый ли раз, после старта миссии Томми сел в машину. Чтобы радио было выкл. Хотя я ещё подумаю. Может, эту часть тоже можно оптимизировать.
Цитата:
Сообщение от GOLOD55
2. фильтр перед Label dan_on-овский не мешает в сценах2 и его не требуется удалять. он просто инактивирует скрипт в миссиях без плеер_актора.
а вот флт4 обнулить не мешает ниже, ога
|
Знаю, что не мешает, это, скорее, для оптимизации. Хотя, мне ли говорить об оптимизации, с таким размером скрипта )
Цитата:
Сообщение от GOLOD55
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
|
А с вектором ты хитро придумал, одной командой три переменные присваивать )
Умён!
Я не был уверен, что переменные создаются с нулём и страховался от возможных рандомных значений.
Кроме того, мне нужно было расписать значение каждой переменной и комментарий к ней, чтобы не запутаться.
Всё-таки удержать в голове значения и назначение тридцати переменных - задача нетривиальная.
Большое спасибо за советы и замечания!
Поколдую теперь немного над оптимизацией.
Тем более, у меня ещё была мысль насчёт процедуры создания потоков. Тоже оптимизировать и выкинуть одну переменную.
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.
|