Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Скриптинг (https://mafia-game.ru/forum/forumdisplay.php?f=10)
-   -   Скрипт автомобильного радио (https://mafia-game.ru/forum/showthread.php?t=1047)

Firefox3860 08.10.2020 18:58

Цитата:

Сообщение от KlassenAS (Сообщение 12348)
А список имён файлов где посмотреть можно?

Обычно смотрится прямо по распаковке архива :) Отдельно music можно распаковать.

Kaiser 08.10.2020 22:48

2 KlassenAS

Я обнаружил баг в радио. В общем, скрипт работает идеально, как я писал выше, но когда ты сохраняешь игру, выходишь в Главное меню и после загружаешь сохранение, то когда спавнишься в игре, радио играет вокруг тебя, в окружающем мире.

KlassenAS 08.10.2020 22:58

Цитата:

Сообщение от Kaiser (Сообщение 12352)
2 KlassenAS

Я обнаружил баг в радио. В общем, скрипт работает идеально, как я писал выше, но когда ты сохраняешь игру, выходишь в Главное меню и после загружаешь сохранение, то когда спавнишься в игре, радио играет вокруг тебя, в окружающем мире.

Да, я уже знаю об этой ошибке.
Так происходит, когда поток зациклен командой Stream_SetLoop.
Я уже сообразил, как реализовать повтор обходным путём.
Завтра скину исправленный скрипт.

Firefox3860 09.10.2020 10:04

Вот и распаковка музыки подоспела → https://mafia-game.ru/forum/showpost...&postcount=169

Файл с музыкой радио: \Mafia Definitive Edition\edit\audio\packages\radio_global.pck

KlassenAS 09.10.2020 13:34

Ох, народ, чувствую себя японским городовым )
Итак.
Я примерно понял, как работает баг с клавишей ESC
При вызове меню все игровые звуки должны ставиться на паузу, а после возврата в игру, те, что не были на паузе и до того, должны снова воспроизводиться.
Но код-то чешский )
Из-за этого игра некорректно отслеживает состояния потоков в скриптах.
Поэтому она эти потоки то ставит на паузу, то нет. И возобновляет, когда не надо.

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

Теперь способ, как эти мафиозные выкрутасы побороть:
Игра помнит не только сам поток, но и состояние всех переменных на момент сохранения. И в этих переменных лежат идентификаторы аудиопотоков.
Следовательно, чтобы багов с непрошенным воспроизведением не возникало, надо в самом начале скрипта, ещё до объявления переменных, эти потоки отдестроить.

CommandBlock 1
Stream_Destroy 0
Stream_Destroy 1
Stream_Destroy 2
Stream_Destroy 3
CommandBlock 0

А уже потом пускать весь основной скрипт.
Если мы используем в скрипте "шапочку" от GOLOD55, чтобы внешний скрипт не работал в меню, то этот дестрой можно и до, и после "шапочки" продублировать. На всякий случай.

Ещё полезно отслеживать состояние здоровья персонажа и дестроить потоки, если Томми склеил ласты.

И вот при таком способе "зачистки" потоков я пока багов не заметил. Но это не точно. Может, потом ещё найдутся.

P.S. Предлагаю, сообщения из этой темы, начиная с №26 перенести в отдельную тему и назвать её "Скрипт авто-радио" или как-то иначе, на усмотрение администрации.

UPD: Написанному не верить. Более тщательная проверка показала, что ни шиша из этого не работает, как ожидалось.

Abradox 09.10.2020 14:03

Список музыки оригинальной Мафии.

папка Mafia/sounds/music (В стимовской и гоговской версиях эти треки отсутствуют.)
city_music_01.ogg
city_music_02.ogg
city_music_03.ogg
city_music_04.ogg
city_music_05.ogg
city_music_06.ogg
city_music_07.ogg
city_music_08.ogg
city_music_09.ogg
city_music_10.ogg
city_music_11.ogg
city_music_12.ogg
city_music_13.ogg
city_music_14.ogg
city_music_15.ogg
12_scene music.ogg
mise02-ulicka.ogg

папка Mafia/sounds (В стимовской и гоговской версиях эти треки "убиты" в них записана тишина вместо муызки).
03_music.wav
10_music.wav
10_musicin.wav
12_radio.wav
13b_music.wav
14_Coucou.wav
18_radio.wav
s_music1.wav
s_music2.wav
s_music3.wav
s_music5.wav

Firefox3860 09.10.2020 14:03

Цитата:

Сообщение от KlassenAS (Сообщение 12358)
Следовательно, чтобы багов с непрошенным воспроизведением не возникало, надо в самом начале скрипта, ещё до объявления переменных, эти потоки отдестроить.

Прямо до dim_flt? Интересно. Главное, чтобы при этом как-нибудь не уничтожился поток стандартной музыки главного меню :D
Цитата:

Сообщение от KlassenAS (Сообщение 12358)
Ещё полезно отслеживать состояние здоровья персонажа и дестроить потоки, если Томми склеил ласты.

Чтобы после перезагрузки игры их не было?
Цитата:

Сообщение от KlassenAS (Сообщение 12358)
P.S. Предлагаю, сообщения из этой темы, начиная с №26 перенести в отдельную тему и назвать её "Скрипт авто-радио" или как-то иначе, на усмотрение администрации.

"Скрипт автомобильного радио" :yep:
Цитата:

Сообщение от Abradox (Сообщение 12359)
папка Mafia/sounds

Эти — "неполноценные", лучше не использовать :) И wav, наверное, не пойдёт в стрим.
Цитата:

Сообщение от Abradox (Сообщение 12359)
папка Mafia/sounds/music (В стимовской и гоговской версиях эти треки отсутствуют.)
city_music_14.ogg

Этой не существует :net:

KlassenAS 09.10.2020 14:10

Цитата:

Сообщение от Firefox3860 (Сообщение 12360)
Прямо до dim_flt? Интересно.

Прикол в том, что в сохранении прописаны значения каждой переменной в каждом скрипте.
Поэтому после загрузки сохранения все эти значения восстанавливаются.
И если в скрипте с именем "1" на момент сохранения в переменной 7 было значение 648, то после загрузки сохранения это значение восстановится.
Соответственно, если в переменной 5 был идентификатор потока, то он там и будет.
Эту фичу можно использовать для отслеживания того, начал ли игрок новую игру или загрузил сейв.
Так что я сейчас ещё добавлю к дестрою дополнительную проверку, была ли загрузка из сейва.

Цитата:

Сообщение от Firefox3860 (Сообщение 12360)
Чтобы после перезагрузки игры их не было?

Ну да. А то опять начнут играть, когда их не просят )

Цитата:

Сообщение от Firefox3860 (Сообщение 12360)
И wav, наверное, не пойдёт в стрим.

Если частота дискретизации не больше 22kHz, воспроизводятся, как миленькие )
Цитата:

Сообщение от Firefox3860 (Сообщение 12360)
Цитата:

Сообщение от Abradox (Сообщение 12359)
Список музыки оригинальной Мафии.

папка Mafia/sounds/music (В стимовской и гоговской версиях эти треки отсутствуют.)
city_music_14.ogg

Этой не существует :net:

Странно, у меня существует )

Firefox3860 09.10.2020 14:23

Цитата:

Сообщение от KlassenAS (Сообщение 12362)
Странно, у меня существует )

Да? И что в ней? :D Если то же самое, что в 05, то она из Extended Mod'а — я положил :)

KlassenAS 09.10.2020 14:26

Цитата:

Сообщение от Firefox3860 (Сообщение 12363)
Да? И что в ней? :D Если то же самое, что в 05, то она из Extended Mod'а — я положил :)

Действительно, то же самое.

Ха! Ни фига. Я ошибся. Значение переменных не сохраняется.
Но фишка с уничтожением потоков, почему-то работает.
Хз, возможно, команда Stream_Destroy, в принципе, если видит некорректный идентификатор, докапывается до потоков, ранее созданных этом скрипте.
Хз почему, но работает как надо.

UPD: Я вообще теперь ничего не понимаю.
Снова была ошибка с непрошеным воспроизведением.
Хотя теперь, вроде, происходит реже.
Я уже ничего не понимаю.

Кто-нибудь знает способ определить в скрипте, что игрок собирается загрузиться с сохранения или выйти из миссии, чтобы перед этим отдестроить аудиопотоки?


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

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