![]() |
Блин нафиг....мужики, ну вы чего блин?! Ну ктож так делает:
} 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]другой столп, изобретённый тобой - хендлер, сам себя запускающий. Только его писать дольше, да и останавливать сложнее.
|
Текущее время: 20:38. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim