Цитата:
Если после стрелки на этом пути нет никаких TrackType и есть SidingItem значит считаем что мы на станции и устанавливаем TrackType = 1 для SMS и включаем генератор стыков через 25M для кабины.
К стати по номеру пути в SidingItem можно устанавливать степень разбитости пути и переключать генератор стыков на 12.5м если допустим номер пути больше 5.
|
Хм, да это вариант из области вероятностей. А если боковой путь на станции без маркера Siding'а? Если допустим маршрут прямиком на подъездной путь. Или наоброт главный путь на станции помечен.
Таким макаром можно и проще сделать - считать любой элемент пути длиной меньше 1500 метров обычным, более - бесстыковым.
Цитата:
Можно и чего не модифицировать а принять как константы
допустим так
TrackType 0 без стыковой 600м
TrackType 1 25м
TrackType 2 12.5м
TrackType 3 стрелка прямо
TrackType 4 стрелка на боковой
TrackType 5 без стыковой 600м + кривая
TrackType 6 25м + кривая
TrackType 7 .... резерв (маркер события или еще чего)
|
Константы как раз использовать и нельзя. Мы же не новые маршруты делаем, а приспосабливаемся под старые. Если константы сделать, все маршруты "поплывут" - у них же собственные наборы звуков пути, без строгой последовательности.
Если же сделать с дописыванием параметров в описание ttype.dat, тогда по умолчанию, с немодифицированным ttype, - всё как сейчас, никаких звуков, никаких вызовов в СМС. А уже колгда прописываются параметры, они прописываются соответственно конкретным типам трексаундов, уже существующих в маршруте.
Цитата:
всё бы было хорошо и возможно будет работать но в SMS нужно выставлять задержки по осевой формуле(файлы к примеру так делать) и задержки будут динамические с учетом скорости.
У поляков в EU07 так и сделано но нормально не работает(пропускает события) то в семплах захлёбывается. И MSTS была такая схема.
Вся проблема в звуковом двигле который видимо выделяет один поток для стука колёс.
|
А можно ещё вызывать по отдельному триггеру для каждого колеса) Только это перебор.
Задержку можно организовать. Можно типа так:
PlayOneShot ( 3
File ( "..." -1 )
DelayPlayback(
BaseDelayTime ( sec )
DelayController ( SpeedControlled q min max )
)
)
Ещё вариант:
новый тип триггера, запускающийся при каких-либо событиях, можно к примеру как раз для стрелок его определить или вызывать при окончании воспароизведения звука:
Event_Trigger ( OnPlaybackRelease TriggerNum
DelayPlayback(
BaseDelayTime ( sec )
DelayController ( SpeedControlled q min max )
)
PlayOneShot ( ... )
)
Цитата:
Для того чтобы такая схема работала нужно ювелирно подбирать длину семпла иначе будет перехлёст семплов(когда один еще не доиграл а нужно уже играть другому) и пропуск проигрывания.
Да и к тому-же сделать очень короткие семплы стука нельзя так как есть минимум после которого звук становится не похож на правду.
|
Или в два потока играть, по одному на телегу. В конце концов ведь расстояние между стыками-остряками может быть меньше длины локомотива)
Или - Halt (), а затем - сразу начинать воспроизведение следующего

Или и то и другое.
Цитата:
Есть и компромиссный вариант играть одним файлом но набор звуков.
это избавит от изобретения велосипедов и будет давать звук только тогда когда нужно.
Генератор стыков будет давать стыки через 600M и отправлять в СМС определённый код дискретного триггера а СМС будет играть в PlayOneShot набором звуков в одном файле.
В такт со звуками двигается кабина(вагон) и кроме очевидных бонусов получаем экономию в размере семпла для без стыкового пути, потому как не нужно хранить паузу между стыками.
И это лучший вариант.
|
Не понял - в смысле набором звуков?)
Цитата:
Есть один вопрос, можно ли узнать, что на этом пути есть SidingItem?
|
Можно конечно.
Цитата:
Заметил что текстуры ночью не светятся.
У них другой механизм свечения?
|
Которые текстуры? Ночные текстуры переключаются также как в МСТС, светящиеся материалы тоже.
В кабинах свет надо включать вручную, там выключатели есть.