Показать сообщение отдельно
Старый 09.10.2020, 13:34   #75
KlassenAS вне форума KlassenAS
Аватар для KlassenAS
Senior Member
Сообщений: 341
Репутация: 285
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 / 285
Enforcer
260
Priest
396
Snitch
780
Hitman
800
Councilor
1200
Deputy
2501
Overseer
4896
Press
6020
Don
20000
Ох, народ, чувствую себя японским городовым )
Итак.
Я примерно понял, как работает баг с клавишей ESC
При вызове меню все игровые звуки должны ставиться на паузу, а после возврата в игру, те, что не были на паузе и до того, должны снова воспроизводиться.
Но код-то чешский )
Из-за этого игра некорректно отслеживает состояния потоков в скриптах.
Поэтому она эти потоки то ставит на паузу, то нет. И возобновляет, когда не надо.

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

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

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

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

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

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

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

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

Последний раз редактировалось KlassenAS; 09.10.2020 в 18:42.
цитата
Поблагодарил:
EmptyBowl (09.10.2020)