Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
![]() |
|
Сайт | ПРАВИЛА ФОРУМА | FAQ | Регистрация | Справка | Пользователи | Социальные группы | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
|
![]() |
#1 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
![]() |
![]()
Результат без изменений... Но, вот только что, попробовал изменить в sigcfg местами линзы огней, то желтый мигает но во всех случаях когда должен гореть зеленый. Получается что скрипт не считывает блок, где нужен желтый мигающий. Или же его пропускает. На все остальные сигналы реагирует нормально.
|
![]() |
![]() |
![]() |
#2 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Думаю, что это может быть... ещё попытка:
SCRIPT T_Head_YGR extern float enabled; extern float block_state (); extern float next_sig_lr (); extern float next_sig_mr (); extern float def_draw_state (); extern float state; extern float draw_state; extern float sig_feature (); float next_state; if (enabled) { next_state = next_sig_lr (SIGFN_NORMAL); state = 1; if ( ( !sig_feature ( SIGFEAT_USER1 ) ) && ( block_state () == BLOCK_CLEAR ) ) { if ( ( next_state == 1 ) || ( next_state == 2 ) ) { state = 3; } /// "Yellow" else { state = 7; } /// "Green" draw_state = def_draw_state (state); if ( state == 7) { if ( next_state == 4) { draw_state = 4; } /// "Yellow F" else if ( ( next_state == 5 ) || ( next_state == 6 ) ) { draw_state = 5; } /// "Green F" } } } else { state = 0; draw_state = def_draw_state (state); } Последний раз редактировалось КЕ; 08.03.2020 в 23:57. |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#3 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#4 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Спасибо!
дело было в последних 2 строках: } else state = SIGASP_STOP; draw_state = def_draw_state (state); Получалось, что после правильной отработки включения огней скрипт проходил по draw_state = def_draw_state (state); и сбрасывал огни обратно на зелёный. После заключения в скобки: else { state = 0; draw_state = def_draw_state (state); } огни второй раз уже не менялись, скрипт не заходил на строку draw_state = def_draw_state (state);. |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#5 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
![]() |
![]()
Скрипт работает нормально... Но я решил посмотреть, что происходит из сигналом, после проследования состава... И выяснилось... что светофор не переключается на красный)
|
![]() |
![]() |
![]() |
#6 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Вот в начало скрипта:
if (enabled) { next_state = next_sig_lr (SIGFN_NORMAL); { state = 1; draw_state = 0; } ... ... |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#8 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Олег, я в соседней теме просил скрипты, чтоб понять синтаксис, а то у меня OR ругается постоянно:
Unexpected number of = in string : ELSE IF ( NEXT_N = 3 ){STATE = 7... Unmatching brackets in : ELSE IF ( NEXT_N... Что-то там было, что терпит МСТС, а ОР вот так пишет в лог, но не помню, в чём именно дело... |
![]() |
![]() |
![]() |
#9 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
Скобки проверь.
Он на скобки ругается. Последний раз редактировалось vicente; 17.04.2020 в 11:18. |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#10 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
Проблема, которую я описал в теме о Timetable Mode касается исключительно сигнализаций, где количество активированных сигналов функционально задействовано в каких-то ситуациях. То есть, если сигнализация построена на том, что нет никаких дополнительных сигнальных точек, или аргумент SignalNumClearAhead постоянен - никаких изменений в работе не будет. Мне это сломало некоторые моменты из-за особенностей в самой сигналке. У меня всегда первая сигнальная точка после станции (а также на маршрутных светофорах, но там оно не мешает, проблема обнаружилась именно с выходными) в случае !enabled даёт аспект 2 (и зеленый, желтый или красный - в зависимости от занятости б/у если это проходной АБ или 2 и красный, если это входной АБ или ПАБ. Это нужно для того, чтобы в маневровом режиме давать 2 и белый на выходном. Логика проста. Естественно, если сервис отправляется на перегон и его Path не доходит до первого сигнала после входного, то этот самый первый сигнал !enabled (в МСТС, кстати, тоже так, поэтому я и написал там,,что сигналка в обоих симуляторах работает) и выдаёт 2. А выходной настроен на следующий 2 давать 2 и белый. В поездном режиме первый светофор после станции активируется , естественно и выходной выдаёт поездные аспекты. Присутствие в сигнализации дополнительного маркера рельсовой цепи в начале каждого станционного пути по ходу движения сервиса, а также маневровых сигналов на входных стрелках требует точного расчета SignalNumClearAhead у входного светофора. Он должен "доставать" через все станционные объекты сигнализации аж до этого самого первого проходного или входного на следующую станцию. Иначе мой входной просто не откроется - маневровые дают 2, если путь знаят, чтобы позволить прицепку на занятый путь, а также если путь свободен и на выходном -2 для маневрового проследования по свободному пути, а при маневровом режиме входные у меня "заперты", естественно.
Обидно, что когда я эту механику разрабатывал, и у меня был выбор: положиться ли на разработчиков ОР с их утверждением, что светофор с SignalNumClearAhead = -1 не учитывается симулятором в "общем зачёте" или прописывать "топором" все значения этого параметра для каждого светофора, включая маркеры, я выбрал первое. Зря... Бывает Добавлено через 14 минут Вносить поправки сейчас, ИМХО, смысла не имеет, всё вышеизложенное делалось "не от хорошей жизни" , а из-за нехватки аспектов и отсутствия соответствующих функций. В Open Rails теперь есть специальные дополнительные функции для сигнализации, расчитанные именно для возможности сделать маневровые показания. Так что, если переделывать, так уже переделывать всё [...рыдая бьётся головой о стену... ![]() |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#11 | |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]() Цитата:
Логика работает как работала! Ещё раз "посыпаю голову песком", как говорил товарищ Дж. Лондон |
|
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#12 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Ты по удалению, впередиидущий сервис что-то изменяет?
Последний раз редактировалось КЕ; 17.04.2020 в 16:59. |
![]() |
![]() |
![]() |
#13 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
В Open Rails - нет. В MSTS enabled() распространяется и на светофор, который сервис проехал. Вернее - на тот, что проследовал и на один перед ним, если я правильно помню. На "Заборе" я выкладывал проверку по этой функции с картинками. Пост нашел, но картинки пропали.
Добавлено через 2 минуты Поэтому, да, там поездной откроется. Я забыл |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#14 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Вообще от скрипта зависит, но помню были случаи, когда после прохода трафика мне выходной белым горел вместо желтого, то есть реагировал на !enabled проходного.
|
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#15 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
То есть сим при подсчете светофоров твои маневровые пропускает, но работают они по обычному скрипту?
Добавлено через 20 минут Нигде не встречал - когда в конфиге указывается число SNCA - учитываем значность сигнализации (3-значная, 4-значная), или это неважно? |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скрипты Вл | ~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 |
|
![]() Что это? |