Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
![]() |
![]() |
#406 |
Разработчик
Регистрация: 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. |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
|
Яndex
Спонсор
Регистрация: 01.01.2007
Сообщения: 500
Реклама показывается изредка по случайному принципу |
![]() |
![]() |
#407 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#408 |
Разработчик
Регистрация: 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);. |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#409 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
![]() |
![]()
Скрипт работает нормально... Но я решил посмотреть, что происходит из сигналом, после проследования состава... И выяснилось... что светофор не переключается на красный)
|
![]() |
![]() |
![]() |
#410 |
Разработчик
Регистрация: 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; } ... ... |
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#412 |
Разработчик
Регистрация: 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... Что-то там было, что терпит МСТС, а ОР вот так пишет в лог, но не помню, в чём именно дело... |
![]() |
![]() |
![]() |
#413 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
Скобки проверь.
Он на скобки ругается. Последний раз редактировалось vicente; 17.04.2020 в 11:18. |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#414 |
Заблокирован
Регистрация: 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 за это полезное сообщение: |
![]() |
#415 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Ты по удалению, впередиидущий сервис что-то изменяет?
Последний раз редактировалось КЕ; 17.04.2020 в 16:59. |
![]() |
![]() |
![]() |
#416 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
В Open Rails - нет. В MSTS enabled() распространяется и на светофор, который сервис проехал. Вернее - на тот, что проследовал и на один перед ним, если я правильно помню. На "Заборе" я выкладывал проверку по этой функции с картинками. Пост нашел, но картинки пропали.
Добавлено через 2 минуты Поэтому, да, там поездной откроется. Я забыл |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#417 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
Вообще от скрипта зависит, но помню были случаи, когда после прохода трафика мне выходной белым горел вместо желтого, то есть реагировал на !enabled проходного.
|
![]() |
![]() |
Этот пользователь сказал Спасибо КЕ за это полезное сообщение: |
![]() |
#418 | |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]() Цитата:
Логика работает как работала! Ещё раз "посыпаю голову песком", как говорил товарищ Дж. Лондон |
|
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#419 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,078
Вы сказали Спасибо: 8,769
Поблагодарили 2,569 раз(а) в 1,171 сообщениях
![]() |
![]()
То есть сим при подсчете светофоров твои маневровые пропускает, но работают они по обычному скрипту?
Добавлено через 20 минут Нигде не встречал - когда в конфиге указывается число SNCA - учитываем значность сигнализации (3-значная, 4-значная), или это неважно? |
![]() |
![]() |
![]() |
#420 | ||
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]() Цитата:
Есть разные способы. Один из разработчиков на буржуйском форуме писал, что у него все сигналы АБ с -1. То есть, он с выходого "энэйблит" сразу входной следующей станции независимо от количества блок-участков. Мне такой способ неприемлем, ИМХО, для трёхзначки достаточно 3, для 4-х - 4. И то - "с запасом" - из-за этого самого моего первого проходного с 2, когда он !enabled для маневрового на выходном. Цитата:
Действительно: скажем - 3-х-значная. Сервис движется, его светофор зелёный, за ним нам нужно 2 сигнала. Первый по ходу будет зелёный, за ним - жёлтый, за ним уже !enabled. |
||
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
Здесь присутствуют: 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 |
|
![]() Что это? |