Главная Форум Файлы
Справка Сообщество Календарь Сообщения за день Поиск

Вернуться   Mafia-Game Forum > Mafia: The City Of Lost Heaven > Скриптинг
Расширенный поиск

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2020, 06:35   #241
CurtisTea вне форума CurtisTea
Аватар для CurtisTea
Member
Сообщений: 49
Репутация: 40
CurtisTea is on a distinguished road
Detective
Информация о репутации (CurtisTea)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
CurtisTea / 40
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Есть же команда citymusic_on/off. Или я неправильно понял вопрос?


Цитата:
Сообщение от KlassenAS Посмотреть сообщение
но глюки из-за сохранения потоков и отсутствие функции для определения длительности трека ставят на этом крест
А что именно у тебя не выходит сохранить? И можно было бы все треки в один свести и запоминать/восстанавливать его позицию (хотя раньше кто-то писал вроде что оно в память трек целиком выгружает, извините, я очень быстро тред пролистывал). Та и на самом деле зачем тебе функция определения длительности трека если ты эти длительности изначально и так знаешь (ну если пользователь свои личные не закинул конечно)?
цитата
Старый 11.11.2020, 11:12   #242
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 287
KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough
Enforcer
Информация о репутации (KlassenAS)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
KlassenAS / 287
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от Abradox Посмотреть сообщение
Как отделить городскую музыку от миссионной?
Нужно чтобы при выходе из машины городская музыка не играла, а миссионная в миссиях играла.
Ну так городская выключается в начале скрипта командой CityMusic_Off.
А миссионная создаётся в игровых скриптах потоками, как и наше радио.
Ты что, ещё какой-то конфликт нашёл?

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

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

Код:
//Radio Script Ver. 2.1 09-11-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

Rnd 15,300000
Rnd 16,300000
Rnd 17,300000
Rnd 18,300000

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
If Flt[9]=0,-1,CREATED00
Let Flt[6]=Flt[0]
Label CREATED00
CommandBlock 0
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
If Flt[9]=1,-1,CREATED01
Let Flt[6]=Flt[1]
Label CREATED01
CommandBlock 0
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
If Flt[9]=2,-1,CREATED02
Let Flt[6]=Flt[2]
Label CREATED02
CommandBlock 0
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
If Flt[9]=3,-1,CREATED03
Let Flt[6]=Flt[3]
Label CREATED03
CommandBlock 0
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
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
If Flt[9]>-1,-1,NO_DESTROY
GoSub RADIO_DESTROY
Label NO_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
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
CommandBlock 0
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
FindNearActor 0,10,Car

CompareActors 11,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

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
CommandBlock 1
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]
CommandBlock 0
Return
[свернуть]


Цитата:
Сообщение от CurtisTea Посмотреть сообщение
раньше кто-то писал вроде что оно в память трек целиком выгружает, извините, я очень быстро тред пролистывал
Совершенно верно.
У нас и так со сборкой модов движок большой объём памяти использует, а тут ещё четыре двухчасовых аудиозаписи в памяти.
Оно нам надо? Лучше отдельными треками.
А ещё FreeRide Extended тоже память жрёт как бегемот)

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

Последний раз редактировалось KlassenAS; 11.11.2020 в 12:30.
цитата
Старый 11.11.2020, 14:20   #243
Abradox вне форума Abradox
Аватар для Abradox
Modding Crew
Сообщений: 2,771
Репутация: 1311
Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of
Councilor
Информация о репутации (Abradox)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Abradox / 1311
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от KlassenAS Посмотреть сообщение
Ты что, ещё какой-то конфликт нашёл?
не, если найду, то напишу.
цитата
Старый 14.11.2020, 01:54   #244
GOLOD55 вне форума GOLOD55
VIP
Сообщений: 100
Репутация: 152
GOLOD55 has a spectacular aura about GOLOD55 has a spectacular aura about
Thug
Информация о репутации (GOLOD55)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
GOLOD55 / 152
Thug
100
Judge
159
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
...переложить радиво со скрипта в asi?
Теоретичски, гутт, ибо может убрать опр. сложности и ограничения, ога.
Но, сдается мине, енто непросто. компилить скрипт в ассемблер_код - архисложно и малоосмысленно, но вот если логику писать свою в длл и на, напр, с++, то может быть все намного проще: тада всю кухню с потоками можно иметь свою(а также хнопичное управление ею в игре), а от игры требуется совсем немного - лишь несколько фильтров а-ля "is Tommy in car"(с подобным я могу помочь).
цитата
Поблагодарили: 3
Abradox (14.11.2020), Kaiser (17.11.2020), KlassenAS (14.11.2020)
Старый 14.11.2020, 12:02   #245
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 287
KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough
Enforcer
Информация о репутации (KlassenAS)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
KlassenAS / 287
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от GOLOD55 Посмотреть сообщение
если логику писать свою в длл и на, напр, с++, то может быть все намного проще: тада всю кухню с потоками можно иметь свою(а также хнопичное управление ею в игре), а от игры требуется совсем немного - лишь несколько фильтров а-ля "is Tommy in car"(с подобным я могу помочь).
Именно это я и имел в виду - mp3 плеер в виде dll, имитирующий радио
Правда, я только в Delphi умею.
Для меня основная загвоздка именно в том, что я не имею ни малейшего понятия о том, как из своей dll к акторам доступ получить. Чтобы, например, последние несколько машин запоминать, как я это в скрипте сделал, и проверять нахождение Томми в машине. CityMusic_Off, опять же.
А так-то всё, что связано с воспроизведением музыки сделать легче лёгкого.
Дефолтных функций Delphi хватит за глаза.

UPD: погуглил, на C++ тоже вроде не сложно )

Последний раз редактировалось KlassenAS; 14.11.2020 в 12:42.
цитата
Старый 14.11.2020, 14:46   #246
Firefox3860 вне форума Firefox3860
Аватар для Firefox3860
Mafia Modding Crew
Сообщений: 687
Репутация: 773
Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold
Priest
Информация о репутации (Firefox3860)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Firefox3860 / 773
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Если скрипт пока не будет меняться, хочу опубликовать мод 2.1 на одном популярном англоязычном ресурсе (описание переведу сам). И, может быть, на mafiascene потом. Ты не против?

mp3-проигрыватель на с++ это интересно, хотел бы посмотреть
цитата
Поблагодарили: 2
Kaiser (17.11.2020), KlassenAS (14.11.2020)
Старый 14.11.2020, 15:59   #247
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 287
KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough
Enforcer
Информация о репутации (KlassenAS)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
KlassenAS / 287
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от Firefox3860 Посмотреть сообщение
Если скрипт пока не будет меняться, хочу опубликовать мод 2.1 на одном популярном англоязычном ресурсе (описание переведу сам). И, может быть, на mafiascene потом. Ты не против?
Неужто на Нексусе?
Валяй, публикуй, только благодарен буду!

Цитата:
Сообщение от Firefox3860 Посмотреть сообщение
mp3-проигрыватель на с++ это интересно, хотел бы посмотреть
Да хоть на С++, хоть на Delphi, есть дефолтные виндовские библиотеки и функции, к которым можно обратиться, чтобы это реализовать.

Последний раз редактировалось KlassenAS; 14.11.2020 в 16:09.
цитата
Старый 14.11.2020, 16:53   #248
Firefox3860 вне форума Firefox3860
Аватар для Firefox3860
Mafia Modding Crew
Сообщений: 687
Репутация: 773
Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold Firefox3860 is a splendid one to behold
Priest
Информация о репутации (Firefox3860)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Firefox3860 / 773
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Цитата:
Сообщение от KlassenAS Посмотреть сообщение
Неужто на Нексусе?
Не, (кто такой етот ваш нексус?) в дискорде сервер MafiaHub, мож кто знает, там многим зайдёт, думаю.

Цитата:
Сообщение от KlassenAS Посмотреть сообщение
Да хоть на С++, хоть на Delphi, есть дефолтные виндовские библиотеки и функции, к которым можно обратиться, чтобы это реализовать.
Ну да. А ведь сама Мафия это и есть mp3-проигрыватель на с++
цитата
Старый 15.11.2020, 13:39   #249
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 287
KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough KlassenAS is a jewel in the rough
Enforcer
Информация о репутации (KlassenAS)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
KlassenAS / 287
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Товарищи, нужен совет!
Начал писать asi плагин для нашего радио.
Писать начал на своём родном Delphi, т. к. его я знаю лучше, чем С++
Оказался перед выбором )

Вариант 1, более простой - использовать для воспроизведения музыки стандартный компонент Delphi.
Но тогда можно будет использовать только MP3.

Вариант 2 - использовать библиотеку bass.dll, можно будет играть любой формат, и не сказать, чтобы это слишком сложно.
Но тогда вместе с asi придётся ещё bass.dll использовать.
Писать dll, чтобы из неё обращаться к другой dll это довольно забавно )

Так с обработкой нажатий клавиш уже разобрался, сейчас мой несчастный asi включает/выключает музыку по нажатию клавиши.

Ну и да, как-то нужно определять, находится ли Томми в тачке, и как-то вырубать CityMusic.
Без этого создание плагина лишено смысла.
Задумки по этому плагину у меня монументальные, но для начала надо, чтобы он, в принципе, работал.

Последний раз редактировалось KlassenAS; 15.11.2020 в 13:53.
цитата
Поблагодарили: 3
EmptyBowl (15.11.2020), Firefox3860 (15.11.2020), Kaiser (17.11.2020)
Старый 15.11.2020, 14:16   #250
Abradox вне форума Abradox
Аватар для Abradox
Modding Crew
Сообщений: 2,771
Репутация: 1311
Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of Abradox has much to be proud of
Councilor
Информация о репутации (Abradox)
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Detective
0
Gangster
55
Thug
100
Judge
159
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Abradox / 1311
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Вариант 2 предпочтительнее конечно, но если не получится значит будет только mp3
цитата
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Регистрация
×
Чтобы оставлять на форуме Mafia-Game Forum сообщения, необходимо сначала зарегистрироваться.
Пожалуйста, укажите ваше имя пользователя, адрес электронной почты и прочую обязательную информацию о себе в форме ниже.
Имя:
Пароль / Адрес электронной почты
Пароль:
Подтвердите пароль:
Адрес электронной почты:
Подтвердите адрес:
Реферер
Если вы пришли на этот форум по совету одного из участников, то, пожалуйста, введите его имя пользователя.
Реферер:
Время на форуме может быть выставлено в соответствии с тем, где вы находитесь. Выберите свой часовой пояс из списка ниже.
Учитывать переход на летнее или зимнее время (DST).
Получать электронные письма
Время от времени администрация может посылать вам сообщения по электронной почте.

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

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

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