![]() |
Блин, нафиг! Дай мне скрипт.
|
Он здесь [url]http://stream.ifolder.ru/17739731[/url]
|
Не надо делать декларацию int radio_m ВНУТРИ треда. Делайте снаружи.
|
[QUOTE=Gregory_777;178058]Не надо делать декларацию int radio_m ВНУТРИ треда. Делайте снаружи.[/QUOTE]а смысл?
[QUOTE]да уже 5я попытка прошла даром...[/QUOTE]тоже смотрел. Тоже ошибок в скобках не нашёл. Попробуй кусочки кода в комментарии заносить, вдруг получится пофмиксить, чего нам не работает. Кстати parse error также срабатывает на русские символы. |
Пробовал прогонять этот скрипт через компилятор - ошибок нет!
|
Блин нафиг....мужики, ну вы чего блин?! Ну ктож так делает:
} else Sleep(1); А скобку после else дядя ставить будет? Это раз. В инитерьере вместо me всегда ставится loco. Это два Но это при том условии что это внутрисалонный скрипт. Если это внешние звуки, т.е. приаттачен к вагону, тогда надо смотреть. |
[SIZE="3"][FONT="Courier New"]Кто-нибудь здесь
{[INDENT]имеет {[INDENT]понятие об {[INDENT][B][U]индентации[/U][/B][INDENT]кода?[/INDENT][/INDENT]}[/INDENT]}[/INDENT]}[/FONT][/SIZE] |
[QUOTE]В инитерьере вместо me всегда ставится loco. Это два[/QUOTE]Женя! Это не внутрисалонный, это вагонный скрипт. Так что me.
[QUOTE]Кто-нибудь здесь {[INDENT]имеет {[INDENT]понятие об { индентации кода? } [/INDENT]} [/INDENT]}[/QUOTE] не имеет[INDENT]{ никто[INDENT]{ совсем(); } [/INDENT]}[/INDENT] особенно{ [INDENT]именно{[INDENT]в этом случае[/INDENT]} [/INDENT]} |
[code]thread void InternalSoundLoop() {
float vel; while(1) { if(Inside) { vel=GetVelocity() * 3.6; if (vel<1.2) Sleep(1); else if(vel<10.0) Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_0.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); else if(vel<20.0) Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_1.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); else if(vel<30.0) Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_2.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); else if(vel<50.0) Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_3.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); else if(vel<60.0) Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_4.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); else Sleep(World.PlaySound(MyAsset1, "sound/vel_inside_5.wav", 1.0f, 14.0f, 100.0f, me, "a.bog1")-0.2); } else Sleep(1); } }[/code] Вот так должна выглядеть ф-я в моей редакции. Нету там ошибок, всё замечательно работает. Сегодня доавлю ешё рандомное воспроизведение звука движения по "бесстыковому" пути и перестука на скоростях выше 30 км/ч, чтобы перестук не задалбывал. [QUOTE=Evgenyi;178103]А скобку после else дядя ставить будет?[/QUOTE] GameScript допускает (как PHP или Javascript) не заключать тело контейнеров for, if, while, else и try в скобки, если контейнер содержит не более 1 оператора. |
[QUOTE]GameScript допускает (как PHP или Javascript) не заключать тело контейнеров for, if, while, else и try в скобки, если контейнер содержит не более 1 оператора.[/QUOTE]Си это тоже позволяет. Как и C#, являющийся прародителем GameScript.
|
Прародителем GSа сишарп ну никак быть не может, он появился позднее. Речь о джаве, но это вовсе не прародительство, а аналогия.
[QUOTE=Evgenyi;178103]В инитерьере вместо me всегда ставится loco.[/QUOTE] Мда, начнем с того что узнаем в чем разница между [I]loco[/I] и [I]me[/I]. |
[QUOTE=Gregory_777;178149]
Сегодня добавлю ешё рандомное воспроизведение звука движения по "бесстыковому" пути и перестука на скоростях выше 30 км/ч, чтобы перестук не задалбывал.[/QUOTE] Да, работа скрипта с длинными звуками нереальна, а короткие, своей зацикленностью всю реалистичность сводят на нет. Решил поступить так. Взял длинный звуковой файл соответсвующий определенной скорости и разрезал его на равные части. Так поступил и с другими. Звуки обозвал soundp_i, где p - № набора звуков определенной скорости, а i - № файла из набора. Задача: воспроизведение звуков из набора друг за другом (ну, пока скорость позволяет, иначе будет "играть" другой набор), т.к. рандомно "играет" не всегда убедительно из-за несовпадений. Скрипт работает, звуки воспроизводятся, правда надо еще все это настроить, чтоб без запинки и задоринки, а так, результат меня порадовал. Единственное что напрягает, так это большая кипа звуковых файлов в папке sound. А вот сам фаргмент кода (поток), тестовый, сырой, но рабочий: [code]thread void SoundLooper(void) { while(true) { float speed=GetVelocity(); if (speed > 0.2 and speed <= 2.8) { p = 1; i = 0; sound = true; count = true; } if (speed > 2.8 and speed <= 5.6) { p = 1; count = true; if (i >= 19) i = 1; else { sound = true; i++; } } if (speed > 5.6 and speed <= 8.4) { p = 2; if (count == true or i == 20) { count = false; i = 1; }else{ sound = true; i++; //Interface.Print(i); } } if (speed > 8.4 and speed <= 14.0) { p = 3; if (count == false or i == 16) { count = true; i = 0; }else{ sound = true; i++; } } if (speed > 14.0 and speed <= 17.0) { p = 4; if (count == true or i == 16) { count = false; i = 0; }else{ sound = true; i++; } } if (speed > 17.0 and speed <= 26.0) { p = 5; if (count == false or i == 22) { count = true; i = 0; }else{ sound = true; i++; } } if (speed > 26.0) { p = 6; if (count == true or i == 17) { count = false; i = 0; }else{ sound = true; i++; } } if (sound == true and p > 0) Sleep(World.PlaySound(asset,"sound/sound" + p + "_" + i + ".wav",1.0,10.0,100.0,me,"a.bog0")-0.5);[/code] Сразу говорю, он недоделанный, но идея может быть кому и пригодится. |
А c soundscript экспериментировал кто-нибудь?
|
Я пробовал,прописывал звуки к точке привязки в салоне,но они не заработали......
|
[QUOTE=Combine;178575]А c soundscript экспериментировал кто-нибудь?[/QUOTE]
Ну есть такие ;) [QUOTE]Мда, начнем с того что узнаем в чем разница между loco и me.[/QUOTE] Да я просто сначала думал что тут внутрсалонный пытались делать. |
[QUOTE]Да я просто сначала думал что тут внутрсалонный[/QUOTE]скрипт вагонный. Но скрипт следит за пользователем (внутри/снаружи) и воспроизводит соответственно нужные звуки
[QUOTE]Единственное что напрягает, так это большая кипа звуковых файлов в папке sound.[/QUOTE]можно сделать получение asset из одного куида, общего для всех вагонов |
[QUOTE=Диспетчер;178576]Я пробовал,прописывал звуки к точке привязки в салоне,но они не заработали......[/QUOTE]
Саундскрипт доступен для объектов начиная с мапобжекта (скенери, вагоны и т.п.). Кабина наследуется от мешобжекта, соответственно, такой функциональности не имеет. [QUOTE=Evgenyi;178580]Да я просто сначала думал что тут внутрсалонный пытались делать.[/QUOTE] Внутрисалонный-внешний не суть важно, нужно понимать какой смысл несет [I]me[/I], какой [I]loco[/I]. [I]me[/I] — ссылка на текущий объект. Тот, где находится метод, в котором ты пишешь код. Про него в 90% случаев можно забыть, окромя явного указания переменной-члена при перекрытии имен или передачи данного объекта функции. [I]loco[/I] — ну начнем с того, что это не ключевое слово. А во-вторых, его наличие обусловлено лишь реализацией DefaultLocomotiveCabin, ты можешь сделать двадцать других, а унаследовавшись от Cabin, никакого лока не будет. Ну а в-третьих, локо в DLC — это ссылка на локомотив, где стоит кабина. Так что ни что ни кого не заменяет, все зависит от того, к чему нужно обращаться. |
[B]cosmos[/B], зачем такой огород городить? Да ещё и циклы внутри тредов... Бееее...
|
Цикл внутри нити тащемта столп программирования в ТРСе :)
|
[QUOTE]тащемта столп программирования в ТРСе[/QUOTE]другой столп, изобретённый тобой - хендлер, сам себя запускающий. Только его писать дольше, да и останавливать сложнее.
|
Удалить месседж из очереди проще простого — ClearMessages(string, string). А вот для остановки потока ему нужно регулярно проверять условие остановки, что не всегда рационально.
|
Да, по этому соглашусь - не то хотел сказать в предыдущем сообщении.
Плохо только то, что если возникает второй такой поток, то сообщения начинают плодиться лучше кроликов (в геометрической прогрессии) |
[QUOTE=Gregory_777;178726][B]cosmos[/B], зачем такой огород городить? Да ещё и циклы внутри тредов... Бееее...[/QUOTE]
Циклы внутри трэдов? Хде? Приглядись или я чего-то не понимаю? Это основной поток, больше нету.:) У этого огорода, тем неменее, звук получается красавный. ЗЫ: кстати, я изначально ориентировался только на звуки внутри салона. |
[QUOTE]кстати, я изначально ориентировался только на звуки внутри салона.[/QUOTE]лучше делать 3 звука
1) внутри салона (записанный в купе) - для "Internal-View" 2) для вида снаружи (записанный в тамбуре) - для "External-View" и "Tracking-View" 3) для вида с земли (записанный возле проезжающего поезда) - для "Roaming-View" Напоминаю, доплера в трс нет (да и в "External-View" доплера быть не должно :) ) |
Я задумывался насчет этого, но хочу сначала звук торможения внутри замутить (характерное шуршание такое на скорости). Уж очень меня он цепляет.:)
|
я когда-то так делал
thread void BrakeLoop1() [INDENT]{ if(!brake_state)[INDENT] { brake_state=true; Sleep(World.PlaySound(MyAsset1, "sound/brake_start.wav", brake_sound, 10.0f, 100.0f, me, "a.bog0")-0.2); while(brake_state_set) [INDENT]{ Sleep(World.PlaySound(MyAsset1, "sound/brake_loop.wav", brake_sound, 10.0f, 100.0f, me, "a.bog0")-0.2); }[/INDENT] if(TC<1.0) //звук отпуска [INDENT]Sleep(World.PlaySound(MyAsset1, "sound/brake_otpusk.wav",brake_sound, 10.0f, 100.0f, me, "a.bog0")); else//звук остановки[/INDENT] Sleep(World.PlaySound(MyAsset1, "sound/brake_stop.wav",brake_sound, 10.0f, 100.0f, me, "a.bog0")); brake_state=false; }[/INDENT] }[/INDENT] и в цикл того потока добавлялось [INDENT] speed=Math.Fabs(GetVelocity()); //скорость нужна по модулю TC=GetBrakeCylinderPressure()*981-1; if(speed<0.8) [INDENT]brake_sound=0.4;[/INDENT] else [INDENT]if(speed<2) [INDENT]brake_sound=0.8;[/INDENT] else [INDENT]brake_sound=1;[/INDENT] [/INDENT] if(TC>1.1) [INDENT]{ brake_state_set=true; BrakeLoop1(); }[/INDENT] if(TC<1.0 or speed<0.6) [INDENT]brake_state_set=false;[/INDENT][/INDENT] |
У меня звук торможения опять же длинный и в зависимости от скорости он меняется в звучании, вот тут-то и хотелось бы поэкспериментировать.:)
Хотя, из этого кода кое-что можно подчерпнуть, спасибо. |
значит в этом месте
if(speed<0.8) [INDENT]brake_sound=0.4;[/INDENT] else [INDENT]if(speed<2) [INDENT]brake_sound=0.8;[/INDENT] else [INDENT]brake_sound=1;[/INDENT] [/INDENT] добавляй ещё работу с номером звука. Главное - попробовать удачно зациклить все его части. |
Да да, я уже узрел.:) Тут самое сложное - это грамотная обработка звука (а у меня с этим как бы так), т.к. подгонка скрипта мера общая по отношению к звукам.
|
Помогите пожалуйста....В Саундскрипте есть такой тег value-range ,который устанавливает время(в зависимости от времени суток)звучания.Мне нужно получить время звучания с 9.00утра до 23.00 вечера.Ночью звук должен молчать...Какие цифровые значения у этого тэга в данном случае должны быть?
|
0.375, 0.9583 (если 0 - 0 часов, а 1 - 24 часа. Там вроде так и есть)
|
Слушайте, а вот в [URL="http://www.youtube.com/watch?v=KeG-L5GVReg"]этом[/URL] ролике про трассу "Фантазия" какие-то интересные звуки пасс. вагонов. Это что?
|
Звуки, скорее всего, просто наложены на видео.
|
Текущее время: 06:05. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim