Форум Trainsim  

Вернуться   Форум Trainsim > Microsoft Train Simulator > MSTS - Маршруты

Ответ
 
Опции темы Опции просмотра
Старый 02.05.2020, 12:15   #1
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Нет, уж, спасибо. Предпочитаю роль "зрителя"

Что-то, я тупил последние пару дней, пытаясь получить это несчастное маневровое показание через какую-то страшную ...опу - через два оппозита. Типа, маневровый "смотрит" назад, на первый проходной, тот, в свою очередь - на входной. И этот, второй оппозит не срабатывал, естественно, потому что проходной-то - !enabled!
Правильная мысль всегда приходит последней.
Думаю, достаточно будет "ловить" маневровым только первый проходной обратного направления. Логика такая: проходным через функцию block_state () о работе которой я писал раннее, можно "поймать" направление движения сервиса "к входному" . Потому что, на втором от станции блок-участке в сторону станции сервис может быть только в поездном режиме. В этот момент маневровый уже должен быть enabled . Совокупность этих двух условий будет запоминать на маневровом поездной режим. При поездном режиме маневровый дублирует аспекты маркера РЦ, а тот - выходного, а если тот 0, даёт 1 со скоростью, соответственно пути приема (60, 40, 25 и т.д). Аспекты я решил не менять - оно и так работает прекрасно. Есть, как я писал, пара "штрихов", которые я исправляю. Дело в том, что если путь приёма занят, сегодня у меня на маневровом горит белый на аспекте 2, а входной при таком раскладе запрограммирован давать 0 на следующий 2. В поездном режиме я оставлю маневровый 2, но показание дам - синий. Второй момент - в обоих режимах на свободный путь станции при выходном 0, маневровый даёт 1, и синий, при манёврах я смогу при том же 1, дать ему белое показание.
Reset "механизма":
Проходной "обнуляется" когда он !enabled и блок за ним не занят вообще, а маневровый - когда он !enabled (голова проследовала его).
Через пару часов будет возможность протестировать это. Будет работать - можно будет поиграться с условиями сброса маневрового, чтобы не менялся с белого на синий сразу после проследования головы.
Кроме возвращения с сейва, издержкой такого подхода может быть то, что чертов Open Rails учитывает длину поезда при прокладке маршрутов (мануал симулятора). У меня на тестовой ветке ЧМушки, и он спокойно может пустить лок до входного, когда маневровый лок выезжает со станции и становится на отрезке между входным и маневровым сигналами. Но, тут уже буду думать потом: стоит ли блокировать весь перегон. Ситуация редкая, хотя, если честно, в реале (по крайней мере - у нас, в Израиле, чтобы манёвры отправились на перегон, направление на пульте должно быть "от станции" и никаких встречных не может быть по определению.

Последний раз редактировалось vicente; 02.05.2020 в 12:17.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 02.05.2020, 12:45   #2
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
...Типа, маневровый "смотрит" назад, на первый проходной, тот, в свою очередь - на входной. И этот, второй оппозит не срабатывал, естественно, потому что проходной-то - !enabled!
Я так тоже пытался делать - бесполезно!
Цитата:
...маркера РЦ...
Как он работает?
Цитата:
В поездном режиме я оставлю маневровый 2, но показание дам - синий.
Это если на выходном STOP?

Последний раз редактировалось КЕ; 02.05.2020 в 13:00.
КЕ вне форума   Ответить с цитированием
Старый 02.05.2020, 13:51   #3
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от КЕ Посмотреть сообщение
Как он работает?
Если блок свободен:
На следующий 0 даёт 1;
Остальные аспекты дублирует.
Если блок занят (JN_OBSTRUCTED) - 0;
Если блок занят (OCCURRED):
Выходной открыт любым показанием - 0;
Выходной закрыт - 2;

Вроде, всё назвал. С телефона сейчас.

Цитата:
Сообщение от КЕ Посмотреть сообщение
Это если на выходном STOP?
Да. Нужно различать между сервисом, следующим с перегона на станцию по 1 и тем, что выезжает маневровым порядком и возвращается на свободный путь со следующим 0 по тому же 1.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 02.05.2020, 20:00   #4
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от КЕ Посмотреть сообщение
Как он работает?
Логика маневрового:
Если блок не свободен, - аспект 0;
В остальных случаях при свободном блоке - дублирование аспекта маркера РЦ. Также учитываются линки.
Я выше выкладывал его полный скрипт.

Входной сигнал:
Если блок не свободен, а также если блок свободен, но следующий (маневровый) - 0 или 2 - аспект 0;
В остальных случаях - логика исходит из следующего сигнала. Если маневровый 1, входной будет 3 или 4 исходя из линка, далее при аспектах выше 2 маневровый дублирует выходной, так что там - обычная конвенциональная логика.

Добавлено через 1 час 8 минут
Такая логика маневрового позволяет ставить их несколько один за другим. Также у меня есть маневровые с логикой как в маркере РЦ как самостоятельного сигнала - вначале именно такие стояли на маршруте, а маркеров не было, пока, как я уже говорил, разработчик сигнализации Open Rails не "ослепил" сигналы, ограждающие точки. Маршрут огромный, так что, где-то они у меня ещё валяются на каких-то станциях. Там ставил оба типа маневровых. Последним был тот,,который с логикой маркера, остальные - те, что я описал.
Также есть станции "классические" - входной и выходной. Там другие светофоры, почти не отличающиеся от оригинала от Timas.

SNCA маневрового и РЦ в Open Rails - "-1". Это позволяет не завышать параметр у остальных светофоров. В MSTS эта логика тоже работает. Но, там, как известно, SNCA берется самый высокий в конфигурации. У меня в MSTS-овском варианте стоит "7", но это зависит от маршрута. В смысле, сколько маневровых на больших станциях стоят один за другим, а также - от устройства станций с маневровыми и маршрутными светофорами.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 02.05.2020, 14:00   #5
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

А этот маркер не мешает локомотивной сигнализации?
КЕ вне форума   Ответить с цитированием
Старый 02.05.2020, 14:14   #6
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Нет. Он же дублирует выходной. На 2D кабинах я "подправил" себе АЛСН под Open Rails - на 0 у меня КЖ, на 1 - тоже. Остальные аспекты дублируются, так что, всё оk. Даже какую-то трёхмерную кабину так переделал "методом тыка"... или две. Не помню уже. ЭРка, вроде, какая-то и ЧС4т от Spiritа. Давно не гоняю уже. Тупо любуюсь сценарием, лично не участвуя в нём.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 02.05.2020, 14:56   #7
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

О, не видел такие кабины... Рулил только в трехмерной для 2ТЭ10М.
Где их скачать?
КЕ вне форума   Ответить с цитированием
Старый 02.05.2020, 15:29   #8
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Я не помню уже. Давно это было. Но, руками точно ковырялся. Возможно, прикручивал РТС-овские кабины. Не помню, честно. Сейчас не до кабин.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 02.05.2020, 18:41   #9
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

РТС-ную можно, да только ничего там работать не будет, поедем по монитору пути. ))
КЕ вне форума   Ответить с цитированием
Старый 02.05.2020, 20:26   #10
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
пока, как я уже говорил, разработчик сигнализации Open Rails не "ослепил" сигналы, ограждающие точки
Это когда сигнал в STOP - он не читает, что за ним дальше?
КЕ вне форума   Ответить с цитированием
Старый 02.05.2020, 21:49   #11
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Не когда STOP, a когда он !enabled. Не определяет route_set (). И состояние блока - возвращает всегда BLOCK_JN_OBSTRUCTED. Насчет сигналов - надо потестить. Я не использую это

Добавлено через 11 минут
В смысле, нет такой ситуации, когда мне маневровым !enabled нужно знать состояние следующего сигнала.

Добавлено через 37 минут
Тем более, в Open Rails, где enabled () работает отлично от MSTS
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 03.05.2020, 15:47   #12
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Эх, где бы я ещё так славно, долго, а главное - качественно потрахался, как не с сигналкой в симуляторе!
Короче, долбился я, долбился с этим маневровым показанием - со временем даже то, что, вроде, работало из функций, начало "глючить". Маневровый перестал "видеть" оппозит и т.п. Думаю, я "нагромоздил" там условий и есть какие-то взаимоисключающие. В общем, переписываю "с нуля" скрипт проходного.

Добавлено через 2 минуты
Дал ему
if (block_state ==# BLOCK_JN_OBSTRUCTED...
А ниже:
if (block_state !=# BLOCK_CLEAR...
И он первое не выполняет
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 03.05.2020, 17:50   #13
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

То есть даже без else перед if (block_state !=# BLOCK_CLEAR... не проверяет?
КЕ вне форума   Ответить с цитированием
Старый 03.05.2020, 23:57   #14
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Да, там сам черт ногу сломит - разбираться почему не сработало. У меня первый проходной (ну, в смысле, вообще все проходные) - довольно ёмкий сигнал. Первым проходным он становится через флаг. Если этот флаг включен и светофор !enabled - он 1 (на однопутках первый проходной - 2 - не суть - на оба этих аспекта выходные были запрограммированы давать маневровый сигнал (сейчас я изменил условие с новой функцией - я показывал). Ну, и под этим - целый блок с показаниями при аспекте 1, согласно занятости перегона. Плюс учтена возможность давать ЖМ и ЗМ, потому что первый проходной может быть и предвходным одновременно.
Затем идёт блок для обычного движения, когда светофор enabled. Но само условие enabled я, в своё время, не вписывал - не нужно было. И весь блок идёт просто под else if (....
Подозреваю, что этот store_lvar не в любое место скрипта можно запихнуть.
Ну, и условия эти...
if (block_state ==# BLOCK_JN_OBSTRUCTED... стоит в первом блоке, под !enabled, a if (block_state !=# BLOCK_CLEAR... - в блоке под else if (...
Может, в этом проблема, я хз.
Так как скрипт всё равно переписывать, копать дальше не вижу смысла

Добавлено через 1 час 4 минуты
Упс... прошу прощения. Там было не else if (..., a просто else (..., a уже внутри, отдельно , было if (...
Короче, многоэтажка, родившаяся в тестах и не приведенная в "товарный вид" потому что... ну, работало и так...

Добавлено через 4 минуты
Потихоньку начинаю стороить проходной. Вот "тело":
Цитата:
next_state = next_sig_lr (SIGFN_NORMAL);

state = SIGASP_CLEAR_2;
direction = this_sig_lvar (1);

if (block_state() ==# BLOCK_OCCUPIED)
{
state = SIGASP_STOP;
}
else if ((next_state ==# SIGASP_STOP) || (next_state ==# SIGASP_STOP_AND_PROCEED) || (next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_APPROACH_1;
}
draw_state = def_draw_state (state);
if (next_state ==# SIGASP_APPROACH_2)
{
draw_state = 4;
}
else if ((next_state ==# SIGASP_APPROACH_3) || (next_state ==# SIGASP_CLEAR_1))
{
draw_state = 5;
}
else if ( direction ==# 1)
{
draw_state = 6;
}
if (!enabled && has_number_plate)
{
if (block_state ==# BLOCK_JN_OBSTRUCTED)
{
state = SIGASP_RESTRICTING;
store_lvar (1,1);
}
else
{
store_lvar (1,0);
}
}
draw_state = 6 - не горит. Потом можно будет через функцию "гасить" весь перегон.

Скрипт полностью рабочий. Забирай

Добавлено через 2 минуты
Пока оставлю его так. Пойду к маневровому, "ловить" этот самый direction
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 04.05.2020, 10:52   #15
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,571 раз(а) в 1,172 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Думаю все-таки точнее потестить с нулевыми стрелками границы станции и обратной головой на входном.
Нет, не буду, это только путаницу создаст в горловине...
__________________
next_state == 7;

Последний раз редактировалось КЕ; 04.05.2020 в 16:49.
КЕ вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипты Вл ~sejo~ TrainZ - Подвижной состав 2 25.09.2010 18:11
Как эта конфигурация ? vita IT, компьютеры, электроника 9 02.06.2009 00:26
Заказы на скрипты TRam_ TrainZ — Об игре 5 03.04.2009 16:25
MSTS-конфигурация компьютера GeneZone MSTS - Об игре 6 03.03.2008 21:03
Trainz 2006 SP1 Конфигурация PC vita TrainZ — Об игре 18 11.02.2008 00:11


Текущее время: 06:08. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?