Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
![]() |
|
![]() |
#1 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
Да, это так. Подзабыл, прошу прощения. Ровно 10 лет назад я
Скрытый текст:
Нужное место я выделил под спойлером в последнем абзаце Добавлено через 30 минут Ну, с MSTS уже вряд ли что можно сделать. Но, мечты сбываются в наше время в Open Rails , и это дело обещают/сделано уже там. Но, как поётся в песне, "того, что нужно нам, всегда на свете нет..." Прграммировать светофоры для этого нужно с С#, а я вообще не знаю его, и в жизни программированием не занимаюсь. Всегда. Там никакого выпендрёжа нет, на самом деле. Вся цепочка светофоров NORMAL-ы, каждый работает по известным и накатанным функциям и зависит толькоот следующего сигнала. Единственное- пришлось поднять SignalNumClearAhead , а я это очень не люблю. Но, маршрут - мой личный, Последний раз редактировалось vicente; 25.09.2021 в 12:38. |
![]() |
![]() |
Этот пользователь сказал Спасибо vicente за это полезное сообщение: |
![]() |
#2 |
Разработчик
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,083
Вы сказали Спасибо: 8,772
Поблагодарили 2,572 раз(а) в 1,173 сообщениях
![]() |
![]()
В смысле - менять исходный код ORTS?
Какое число было необходимым?
__________________
next_state == 7; Последний раз редактировалось КЕ; 25.09.2021 в 13:08. |
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#4 | |
Заблокирован
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
![]() |
![]()
Нет. Исходный код меняют разрабы. Есть там определённая процедура изменения кода. "Открытость" состоит в том, что любой желающий может предложить изменения в коде, а команда вносит эти изменения в тестовые версии по своему усмотрению. Русификацию, например, делает твой "визави" на форуме Игоря... ну, тот, что в беседу тебя внёс на elvastower.com , ссылку на которую ты мне кинул
![]() Речь идёт о замене sigscr.dat на программу на С#. Кстати, молодёжь, кто знает Шарп? Я вообще в нем ни бум-бум! ![]() Может кто-нибудь набрость какой-нибудь скрипт сигнальной головы? Я имею в виду перевод из этого недо-С в С#... Я бы глянул и смекнул: что к чему. Потому что самоучитель я ниасиливаю (стар?), да и времени, если честно - совсем на него нет. Туплю на азах, в общем. Форма скрипта в с# такова: Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Новичок
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
![]() |
![]()
Да проблема не в языке, а в самом проекте, нужно ведь изучить сорцы OR, прочитать даташиты по их функционалу, что и как подавать в эти переопределяющие методы ovveride. Сам язык понять можно быстро по ютуб урокам.
Судя по всему вся логика в Update. А вот HandleSignalMessage это что не очень понял, то ли для отладки, то ли обмен инфой между сигналами. Последний раз редактировалось roman5; 25.09.2021 в 14:02. |
![]() |
![]() |
Этот пользователь сказал Спасибо roman5 за это полезное сообщение: |
![]() |
#6 | |
Новичок
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
Я тут поборол сигналку на БМО 1.8. Покопав далее скрипт distance входных сигналов заметил такое: Код:
if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; } if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; } } Глянул код голов normal у проходных, нашел это: Код:
state = SIGASP_STOP; if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) { if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } } А выше это в коде: Код:
WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } Направление перегона переключается не в Иванцево, а в Драчеево, то есть с другого конца, по редактору видно, что enable не дотягивает до входного, его скрипт не срабатывает. Попробовал увеличить вAPK_3AB_YGR_YW_DISTANCE параметр SignalNumClearAhead до 15. Теперь работает на тестовой сцене. |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 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 |
|
![]() Что это? |