![]() |
Выследить намерение игрока вряд ли можно, но есть точный способ определить, была ли игра загружена из сохранения или из меню.
|
Цитата:
Хотя, если честно, не уверен, что это поможет. Ведь игра уже загрузилась. А с ней загрузились и ненужные аудиопотоки. Ещё мысль появилась. А что там со стэком? Он работает, кажется, независимо от сохранения? Что, если в него сохранять идентификаторы потоков, а при загрузке из сохранения считывать их и дестроить их потоки? |
Цитата:
Он немного костыльный, используется у меня в моде для загрузки chg-файлов и других начальных присвоений. Но вряд ли тут, конечно, поможет. Цитата:
|
Цитата:
Развернуть для просмотраfloatreg_pop xx \\ есть в mise19mesto
найти последнее значение в стеке и записать его в переменную xx. Если стек пустой то команда вообще не сработает(даже не перепишет флт xx нулем). xx - назначаемая переменная floatreg_push xx \\ есть в mise19mesto\banka закинуть значение переменной xx в стек(перед загрузкой другой карты, например). в стек можно скидывать много флт. считывание стека floatreg_pop-ом происходит в обратном порядке. считанное из стека значение укорачивает его(причем даже нуля не остается(?)) xx - переменная, значение которой запоминаем [свернуть] |
Цитата:
Ну и всё равно же этот стэк будет в оперативной памяти находиться. |
Цитата:
Кажется, я начинаю понимать, почему. Похоже, что, когда загружается сохранение, и игра воссоздаёт сохранённые потоки, они получают новые идентификаторы. ESC включает их воспроизведение рандомно. А при следующем сохранении у нас сохраняются и те потоки, которые с прошлого сохранения остались, и к ним ещё новые добавляются. Можно было бы дестроить потоки перед каждым сохранением. Но для этого нужно лезть в скрипты в сценах, отвечающие за сохранение. Перелопатить сохранения всех сцен ради одного скрипта - не рационально, мягко говоря. Или хакнуть движок, чтобы созданные в скриптах аудиопотоки не сохранялись. Это мне кажется более действенным, но нереальным. А так-то я этот скрипт отладил - работает отлично. До первого сохранения. А потом игра всю малину портит. Ещё одно наблюдение: когда я делал скрипт, в котором одной радиостанции соответствовал только один аудиофайл, этой ошибки не было. По крайней мере, не помню, чтобы была. Может быть, в игре не может существовать двух потоков, сделанных из одного файла? Надо проверить. UPD: Тоже не прокатило... Вот в таком виде сейчас существует этот скрипт. Больше половины скрипта составляет алгоритм рандомизации треков. Кому не лень состалять плейлист из 40 песен - можете протестировать ) Развернуть для просмотраКод:
//Radio Script Ver. 2 10-10-2020 By KlassenAS [свернуть] |
2 KlassenAS
Я немного запутался. Ты проверял скрипт с коммандоблоками или мне нужно протестировать? |
Цитата:
Это не тот скрипт, что нужен для твоего мода, это другая версия. Написанная с подачи Abradox. Этот скрипт, что я сейчас выложил, я проверил вдоль и поперёк. 4 радиостанции по 10 треков на каждой, с рандомизацией. Работает хорошо, но из-за кривых особенностей игры после сохранения начинаются проблемы с непрошеным воспроизведением потоков, которые не удалось решить средствами скриптинга. Если хочешь, - можешь попробовать этот скрипт в деле. Не хочешь - так и не заморачивайся ) Я планировал сегодня исправить версию скрипта для твоего мода, но после тщетных попыток побороть ошибки в своей, "флагманской", версии, силы мои иссякли, увы. |
Так может тогда убрать из него функцию запоминания? Пусть тогда каждый раз сначала играет, коли команда несовершенна.
|
Цитата:
|
У нас была проблема, что после загрузки сохранения, музыка из радио играет вне машины. Ты говорил, что это из-за команды Сетлуп, или как-то так.
|
А что если при загрузки игры из меню или при загрузки сохранения, сначала дестроить все существующие или не существующие потоки, а потом уже стартовать нужные?
таким образом при сохранении даже если они и запишутся, то уничтожатся при загрузке. Это было бы плохо если бы трэк-лист всегда начинался с начала, но у нас же вроде рандомный аудио-файл выбирается из списка? |
Если речь о моем радио, то там один часовой трек.
|
Цитата:
Я где-то выше об этом писал. Всё тщетно, из скрипта не удаётся докопаться до этих потоков. Я пробовал даже сделать цикл, чтобы менять идентификатор потока от 0 до 1000 и дестроить потоки по этим номерам. Но у меня сложилось впечатление, что из скрипта можно получить доступ только к потокам, созданным в этом скрипте, а после загрузки потоки этому скрипту не принадлежат. Странная хрень. И так пытался дестроить и эдак... Может попробовать сделать цикл от 0 до 5000? ) Цитата:
Цитата:
Только если был зациклен. Но учти, похоже, что после сохранения всё равно останется риск, что поток начнёт играть после юзания клавиши ESC. То есть, игра его всё равно создаст и он будет висеть в памяти, только сам не начнёт играть. Цитата:
С Abradox - о своём. |
2 KlassenAS
Ладно, все равно тебе спасибо! Тогда оставим вариант с продолжением с исходной точки при выходе из авто. Просто буду писать в РИдМи, что есть такой-то баг и не сохраняйте игру. И выпущу тогда дополнение отдельным ДЛС, для тех, кто не захочет радио на постоянку. |
Скрипт автомобильного радио
Сделано
|
Так.
Кажется, я встал на путь истинный :D До этого я все потоки только мютил. А сейчас стал ставить на паузу. Удивительно, но больше у меня баг с воспроизведением после загрузки не появляется. Хотя, может быть, я плохо старался? У меня сложилось впечатление, что игра сохраняет и восстанавливает при загрузки только те потоки, которые были активны на момент сохранения. А те, что были на паузе - игнорирует. Но на самом деле я знаю, что я ничего не знаю. Слишком часто за время разработки этих скриптов у меня складывалось ложное впечатление. в любом случае, баг не даёт о себе знать. Так что на подходе 4 версии скрипта ) И ещё, если кто знает хорошие интернет-радиостанции, ориентированные на классику, джаз, блюз, рок-н-ролл или рок, скиньте мне ссылки на их аудиопоток, типа того, что Firefox3860 скидывал:"http://airtime.joyradio.cc:8000/airtime_192.mp3" Я их вставлю в один из скриптов ) |
KlassenAS, Чё, всё таки паузы нужны, как сначала было?
|
Цитата:
UPD: Ну, что, друзья, вот вам! По моим ощущениям - багов нет. Кто найдёт - тот молодец ) Ver. 1.0 Развернуть для просмотраКод:
//Radio Script Ver. 1.0 11-10-2020 By KlassenAS For Kaiser [свернуть] Ver. 1.1 Развернуть для просмотраКод:
//Radio Script Ver. 1.1 11-10-2020 By KlassenAS [свернуть] Ver. 1.2 Развернуть для просмотраКод:
//Radio Script Ver. 1.2 11-10-2020 By KlassenAS [свернуть] Ver. 2.0 Развернуть для просмотраКод:
//Radio Script Ver. 2.0 11-10-2020 By KlassenAS [свернуть] Единственное, что меня сейчас смущает: при выходе из машины, когда треки ставятся на паузу, не всегда срабатывает команда CityMusic_On. Причём, чаще не срабатывает. Хз, почему. В логике скрипта ошибки нет. Все потоки ставятся на паузу. Капризничает ) Если кто знает, как с этим быть, расскажите, пожалуйста. Осталось дело за малым. Ту версию, что рассчитана на 4 станции по 10 треков, адаптировать для реализации идеи, которую предложил Abradox. Да, кстати, Firefox3860, я нашёл прямые ссылки на mp3 десяти радиостанций, транслирующих джаз и блюз. Самое то для "Мафии". Но все они намертво вешают игру. В игре нормально аботает только та ссылка на джойрадио, которую ты мне скинул. Не знаешь, почему? |
Предположу, что формат вещания другой, не поддерживаемый движком из 2001-го
|
KlassenAS, Круто ты постарался, далеко не каждый смог бы такое на mafiascript'е сделать :)
Цитата:
Цитата:
|
Ядрёна вошь! Опять этот баг после сохранения появился!
Почему до этого весь день не было?! Вообще не понимаю, что происходит. Реально, что-ли, при каждом выходе из машины все потоки уничтожать надо? И что это будет? Каждый раз, как садишься в машину, всё заново? Цитата:
Цитата:
Abradox, родную мафиозную музыку я в скрипт вписал. Первая радиостанция будет. Какие планы у нас дальше? UPD: Поздравьте меня, друзья, я идиот! Я же сам использовал команды Stream_GetPos и Stream_SetPos для определения окончания трека и для его перезапуска, если нужно. Я же могу, при выходе из машины, запоминать позицию каждого потока, уничтожать потоки, а при возвращении в машину всё восстанавливать! Похоже, мне предстоит снова хорошенько перелопатить все версии скрипта... |
точно лол, ж есть стрим_сетпос:)
помнится, в музтомате я замутил ею прикол: если один и тот же трек выбирать слушать, то "игла граммафона" начинала иной раз перескакивать "дорожки":) |
Ну вот! Наконец-то!
И команда CityMusic_On нормально работать стала, и сетлупить можно спокойно, не прибегая к изощрённым способам определения длительности, когда это не нужно. Ver. 1.0 Kaiser, проверяй, теперь у тебя вообще не должно быть проблем с использованием скрипта. Развернуть для просмотраКод:
//Radio Script Ver. 1.0 12-10-2020 By KlassenAS For Kaiser [свернуть] Позже обновлю остальные версии скрипта. |
Цитата:
|
2 KlassenAS
Спасибо, ты мозг! Давай М4 сделаем)) |
KlassenAS, Что, терперь вообще без багов? Не включется само при загрузке? Но теперь получается, что когда ты не в машине, радио останавливает эфир, так?
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Ты ведь имел в виду игру, а не карабин М4? :D Цитата:
Не обязательно забивать все 4 станции, можно урезать до 3 или расширить до 1024 ) Правда, я пока успел переделать только версию 1.0, 1.1 и 1.2 Так же, нашёл мелкую ошибку в переключении радиостанций, исправил. С версией 4х10 дела обстоят сложнее, там нюансов больше, ещё не закончил переделку скрипта. Для личного пользования потом думаю себе сделать версию, в которой будет музыка из оригинала, радио из ремейка, из мафии2, из мафии3, пара кастомных плейлистов с рок-н-роллом типа AC/DC, и ссылочка на реальное "джойрадио". Цитата:
Вообще, если бы была функция, позволяющая узнать продолжительность трека, можно было бы заморочиться, и реализовать пропуск части радиоэфира, пока находишься не в машине, засекать время вне машины и перематывать на это время трек, если нужно, переключать на следующий и перематывать остаток и всё в таком роде. Но такой функции нет ) |
Мне хотелось бы так: музыка из Мафии, радиостанции из M1DE, папка куда можно кидать свои свою музыку.
Есть возможность кинуть в папку свою музыку и ничего никуда не прописывать вручную? |
Цитата:
Цитата:
|
это проще, чем прописывать в скрипте названия музыки.
|
Итак, товарищи радиолюбители!
Принимайте обновлённые версии скриптов: Ver. 1.1 Аналог скрипта для Kaiser но с тремя радиостанциями. Развернуть для просмотраКод:
//Radio Script Ver. 1.1 13-10-2020 By KlassenAS [свернуть] Ver. 1.2 Для реальных радиостанций. Здесь лишь исправил ошибку с переключением. Развернуть для просмотраКод:
//Radio Script Ver. 1.2 13-10-2020 By KlassenAS [свернуть] Ver. 2.0 Она же 4х10. Пришлось хорошенько перелопатить, чтобы запоминание/восстановление позиций потоков и номеров треков не конфликтовало с отслеживанием окончания трека и рандомизацией воспроизведения. Развернуть для просмотраКод:
//Radio Script Ver. 2.0 13-10-2020 By KlassenAS [свернуть] Цитата:
Так что все имена файлов и их количество записываются в самом скрипте. Цитата:
То на то и выходит, в итоге ) |
Вложений: 1
Да простят меня админы за два сообщения подряд!
Но в одно сообщение всё не поместилось! В качестве доказательства прикрепляю скриншот. Ver. 2.1 для Abradox, в разработке: Развернуть для просмотраКод:
//Radio Script Ver. 2.1 13-10-2020 By KlassenAS For Abradox [свернуть] |
Сначала всё было нормально и скрипт работал правильно, потом я стал загружать разные миссии и муызка стала глючить.
Примерно пол секунды муызка играет, следующие пол секунды - тишина, и так постоянно чередуется, как-будто лагает. Странный глюк, проверял скрипт 2.1 |
Цитата:
А после тишины трек как играл? Как после паузы? Или сначала? Или как будто во время тишины продолжал играть, но не слышно? Какие миссии ты при этом загружал? Я так понимаю, что нормально скрипт работал во фрирайде? Прошёл " невозможно отказаться", "бегущий человек" и "вечеринка с коктейлями". Подобных проблем не было. Что было: во время погони радио играло одновременно с драматичной музыкой, которая звучит во время погони. Радио, конечно, можно отключить. После погони, во время катсцены, когда Сэм дал Тому деньги, радио продолжало играть. Естественно, ведь Том в машине. Радио можно было выключить. Во время миссий "бегущий человек" и "вечеринка с коктейлями" во время сохранений Том находится в машине. Радио играет, потоки сохраняются, если запороть миссию и загрузиться с сохранения, то эти потоки начинают играть. Это проблемы естественные и предсказуемые. А вот такого, как ты описал, не было. Единственная мысль: а ты для второй, третьей и четвёртой радиостанции файлы в папку положил? Если нет, то скрипт безуспешно пытался создавать потоки из несуществующих файлов, это и могло привести к подлагиванию. В скрипте как раз с интервалом в половину секунды идёт проверка, не закончился ли трек, и если он не играет, то поток пересоздаётся. |
Нет, я не положил музыку в папки, но в Фрирайде это не было проблемой, при переключении радиостанций просто была тишина. Надо еще будет потестировать.
Музыка как мне кажется во время тишины не играла. |
Покатался я, значит, с музыкой из m1de, и это прекрасно :) Она очень здорово освежает атмосферу, некоторые композиции как будто там и были! :)
Обобщаю. Из 144 аудиозаписей только 48 оказались музыкой. Остальное — разговоры, новостные выпуски и т.д. Их я выкинул. Те 48 композиций я распределил по 2-м станциям (сортировал по своим ощущениям) по 24 на каждую. Оказалось, что записи там тоже в формате ogg, в mp3 лучше не переделывать — так весят в 2 раза больше. То есть в скрипте надо будет имена им (расширения) подправить. Да и пробелы из имён лучше убрать, чтобы путаницы не было. Количество композиций в скрипте тоже, соответственно, расширить до 24 на 2 и 3 станциях. https://mega.nz/file/wz4XjKSa#mp8jMF...AsKjqVAuXO4wv8 100 мб. Теперь ещё немного по скрипту. Всё таки настаиваю на использовании для переключения станций кнопок CROUCH1 и JUMP1 вместо UP1 и DOWN1. Я часто езжу на стрелках и wasd попеременно, из-за чего часто ненамеренно переключал радио. И потом — машина так попросту тормозит и разгоняется когда не надо. На станции citymisic есть создание потоков из wav-файлов. Они почему-то ни разу не запустились. Их выбор отключен сейчас? Всё же считаю, что их вообще надо убрать из скрипта — они для этого не предназначены (за исключением Coucou, непонятно, почему они её как wav сделали). Ещё предлагаю реализовать задумку с отображением текста при переключении станций, потому что сейчас плохо заметен сам момент переключения. Команда console_addtext. Строки: 252 - "Music" 18970051 - "Turn off the radio" KlassenAS, я бы всё это сам проделал, но в таком замысловатом скрипте я уже не разберусь :D Так что прошу учесть, когда будешь его ещё допиливать... Это всё, разумеется, про версию 2.1 А ещё, у тебя в notepad'е синтаксис работает, когда ты пишешь вот так, с большими буквами? Просто у меня шаблон настроен только на нижний регистр. |
Цитата:
Цитата:
Цитата:
Цитата:
Жаль, конечно, что нет команды для вывода произвольного текста. Это было бы очень кстати. Цитата:
UPD: Проверил, все wav воспроизводятся без проблем. При поощи FreeRide_ScoreSet отслеживал номера треков. Вопросы возникли к номерам 1, 2, 3 и 8. Там хромает либо качество самой записи, либо громкость, либо и то, и другое. Это 10_music.wav, 10_musicin.wav, 12_radio.wav и s_music2.wav Вот их, я думаю, стоило бы из списка удалить, если никто не против. А остальные, на мой вкус, вполне себе норм. |
2 KlassenAS
Я проверил твой обновленный скрипт, все отлично работает. Сварганю теперь мини ДЛС к Angel Pine Mod. Спасибо тебе! |
Текущее время: 04:22. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot