|
||||||||||||||||
|
||||||||||||||||
|
09.11.2020, 20:49 | #231 | ||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Кстати, о реализьме.
Я подумал: при старте скрипта все треки на радио начинают играть с начала. Это неправильно. Ведь радио не начинает эфир тогда, когда мы его включаем. Надо при первом включении радио позиции треков рандомизировать. Но рандомизировать-то надо по уму! Надо чтобы случайное значение укладывалось в длительность трека. А как узнать длительность трека? Ведь такой скриптовой функции нет. Гипотеза: если указать потоку с помощью команды Stream_SetPos некорректное значение, заведомо выходящее за пределы длительности трека, например 4 000 000, то потоку присвоится максимально возможное значение, соответствующее окончанию трека, и считав его с помощью команды Stream_GetPos мы узнаем длину трека. Проверил гипотезу экспериментом. Let Flt[15]=4000000 Stream_SetPos 0,15 Stream_GetPos 0,15 FreeRide_ScoreSet Flt[15] И получил неожиданный результат: После попытки присвоения потоку некорректного значения позиции, команда Stream_GetPos показывает погоду на Марсе! Т. е. возвращает рандомное значение. Правда, чаще всего в диапазоне от 3 000 до 15 000 миллисекунд, и нам это не вполне подходит. Таким образом, мы можем, при первом включении радио, смело назначать трекам рандомные позиции в диапазоне от 0 до 5 минут, а если рандомное значение выйдет за пределы реальной длительности трека, то ничего плохого не будет, значение будет рандомизировано по новой. А реализовать эту фичу - пара пустяков. Четыре строки в начале скрипта. Что я уже и сделал. Для версий 2.1 и 2.0 архивы по ссылкам обновлены. Последний раз редактировалось KlassenAS; 09.11.2020 в 21:05. |
||
цитата |
09.11.2020, 23:20 | #232 | |||
Modding Crew Сообщений: 2,771
Репутация: 1311
Councilor
|
Цитата:
Как обстоит дело с выключением сюжетной музыки при выходе из машины в аэропорту в миссии Сливки общества (Creme de la Creme)? P.S. пока разработка идет, и до релиза ещё не дошло, давай лучше ссылку на файл script.sc, чтобы не перекачивать каждый раз архив в 236 мнгабайт, ведь по трекам изменений уже не будет. Последний раз редактировалось Abradox; 09.11.2020 в 23:24. |
|||
цитата |
10.11.2020, 04:34 | #233 | ||
Member Сообщений: 49
Репутация: 40
Detective
|
Кста не знаю вспоминал ли кто-то уже тут, но команда stream_create отлично воспринимает ссылки на онлайн радио (вот прям так, в формате stream_create x,"http://87.230.103.107:80/top100station.mp3" - это мой старый пример, ссылка дохлая уже давно походу). Правда сам поток как я понял должен быть строго в .mp3 закодирован, иначе игра тупо виснет. И ещё года четыре назад, когда я это выкупил именно такое онлайн радио уже было практически не найти... Я не сильно компетентен в кодировке потокового музла, может можно какой-то костыль придумать и себе во фрирайд пускать какую-то oldies радиостанцию и сейчас, я хз)
|
||
цитата |
10.11.2020, 06:48 | #234 | ||||||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Цитата:
Если бы можно было определять длительность трека, я бы засекал, сколько времени радио было выключено, и при включении перематывал трек и/или переключал на следующий и ещё перематывал на нужное время, чтобы имитировать продолжение эфира, пока радио выключено. А если бы не было глюка из-за сохранения потоков, то этого вопроса вообще бы не было и скрипт был вдвое проще и всё работало бы по фен-шую. А так довольствуемся тем, что есть. Цитата:
Цитата:
Цитата:
И даже есть отдельная версия скрипта - 1.2, ориентированная именно на реальное радио. Блин, если бы я умел правильно писать dll и знал, как из собственного кода обратиться к функциям движка, чтобы получить доступ к акторам и их свойствам, я бы этот скрипт сделал в виде asi плагина, и плеер у меня работал бы из самой dll, и никаких проблем бы не было. А плейлист бы считывался из ini-файла. И работало бы и любое радио, и любые аудио форматы. Так-то я в Delphi программы писать умею, можно и плагин замутить. Только я не знаю, как реализовать обмен данными с игровым движком. UPD: Вот сами скрипты в виде сферических коней в вакууме: Ver. 2.1 https://drive.google.com/file/d/1zjl...ew?usp=sharing Ver. 2.0 https://drive.google.com/file/d/1MOs...ew?usp=sharing Последний раз редактировалось KlassenAS; 10.11.2020 в 11:47. |
||||||
цитата |
Поблагодарили: 2 |
Abradox (10.11.2020),
Firefox3860 (10.11.2020)
|
10.11.2020, 12:59 | #235 | ||
Senior Member Сообщений: 159
Репутация: 228
Judge
|
KlassenAS, если рассмотреть на этом примере? Подойдет ли он для Мафии?
оффтоп |
||
цитата |
10.11.2020, 13:14 | #236 | ||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Подойдёт, но лишь потому, что это общая информация о dll и их подключении к основному игровому процессу.
Здесь нет информации о том, как из dll обращаться к функциям движка и обмениваться с ним данными. Тупо присосались к процессу и вывели окошко с текстом и кнопкой ОК. Я такой плагин хоть щас могу сделать. Толку будет, как от козла молока. Вопрос ведь в том, как к акторам доступ получить. В идеале, к некоторым функциям, вызываемым командами из скриптов. В частности, это необходимо для определения нахождения Томми в машине и для сравнения машин. Последний раз редактировалось KlassenAS; 10.11.2020 в 14:12. |
||
цитата |
10.11.2020, 17:51 | #237 | ||
Modding Crew Сообщений: 2,771
Репутация: 1311
Councilor
|
|||
цитата |
11.11.2020, 00:23 | #238 | |||
Member Сообщений: 49
Репутация: 40
Detective
|
Цитата:
Мож если не лень будет даже погуглю как оно работает вообще) |
|||
цитата |
11.11.2020, 00:48 | #239 | |||
Senior Member Сообщений: 341
Репутация: 287
Enforcer
|
Цитата:
Плохая идея. Вся музыка лицензированная, без официальной покупки прав такую интернет-радиостанцию забанят нафиг. Другое дело, если написать программу, которая локально, на компе будет имитировать радиоэфир, крутить треки, притворяясь сервером, к которому игра сможет обращаться по ссылке. Т.к. "вещание" и игра будут работать на одном компе, это освободит от потребности в интернет-подключении и избавит от подвисаний при загрузке. Кроме того, по моим наблюдениям, игра игнорирует интернет-поток при сохранении, и глюков с непрошенным воспроизведением после этого не происходит. Так же можно было бы имитировать любое количество радиостанций. Но я хз, как такое реализовать. Хотя такую программу тоже можно под asi плагин оформить, это был бы большой плюс. Последний раз редактировалось KlassenAS; 11.11.2020 в 00:53. |
|||
цитата |
11.11.2020, 02:02 | #240 | ||
Modding Crew Сообщений: 2,771
Репутация: 1311
Councilor
|
Как отделить городскую музыку от миссионной?
Нужно чтобы при выходе из машины городская музыка не играла, а миссионная в миссиях играла. |
||
цитата |